| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> java是世界上最好的语言之数组 -> 正文阅读 |
|
[数据结构与算法]java是世界上最好的语言之数组 |
目录 大家好,我是躺在床上混子日的躺平哥,今天我们来学习java中的数组,希望给位大佬多多指教! 1.数组概述及定义数组的概述:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 数组是一个最简单的数据结构。 数组的定义:数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作为一个数组元数,每一个数组元数可以通过一个下表来访问他们! 2.数组声明创建声明与创建:首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: 变量类型 变量的名字 =变量的值 数组类型 比如:int[],是存储整数型的数组。
java语言使用new操作符来创建数组,语法如下:
数组的元素是通过索引访问的,数组索引从0开始。比如a[0],a[1],a[2],a[3],a[4],a[5] 这0,1,2,3,4,5,就是索引! 获取数组长度操作:
[下面我们来声明一个数组并创建一个数组,然后引用数组元素并求元素的和]
运行结果为: 3数组创建的底层原理之三种初始化及内存分析:1.静态初始化(创建+赋值:即创建数组的时候就要给数据!) (初始化时由程序猿显示指定每个数组元素的初始值,由系统决定数组的长度)
?? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.动态初始化(包含默认初始化) (动态初始化就是在初始化的时候指定数组长度(这时已经分配内存))
括号里的内容也是动态初始化和静态初始化的区别! 3.数组的默认初始化(默认赋值:int型默认值为0,string型默认值为null(空)) 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。 4.内存分析下面的图比较容易理解? ? 4.数组使用在使用数组前要先掌握数组的四个基本特点 四个基本特点1.其长度是确定的。数组一旦被创建,他的大小就是不可以改变的。 2.其元素必须是相同类型,不允许出现混合类型。 3.数组中的元素可以是任何数据类型,包括基本类型和引用类型。 4.数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量 数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身就是在堆中的 数组边界下标的合法区间:【0,length-1】,如果越界就会报错;
?小结: 1.数组是相同数据类型(数组类型可以为任意类型)的有序集合。 2.数组也是对象。数组元素相当于对象的成员变量。 3.数组长度是确定的,不可变的。如果越界,则会报上方的红色语句! 数组的使用具体介绍数组的一些基本使用:普通的for循环(用的最多) 我们要从数组里取出一些数据或者下标进行操作时使用
进阶使用:For-Each循环(即增强for循环) 一般用来打印一些结果时使用
数组作方法入参就是咱们可以对数组进行操作 数组可以做参数传递给方法。 例如:
数组作返回值当我们想把数组修改一下,然后返回一个新的数组的时候使用! return后的是返回值
记住就行,操作固定! 5.多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一个一维数组. 二维数组内存结构:? 基本格式:
?因为二维数组只有两个下标都知道才能定位具体位置!所以后面两个数! 两种初始化方法:1: 动态初始化 举例:int [ ][ ] ?arr=new ?int [5][3]; ?也可以理解为“5行3例” 2: 静态初始化 举例:int [ ][ ] ?arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}; 静态初始化可用于不规则二维数组的初始化
获取二维数组长度:数组值arr[x][y]表示指定的是第x行第y列的值。 指定索引后加上length(如arr[0].length),指的是该行所拥有的元素,也就是列(Column)数目。 6.Arrays类(关于数组的工具类)想一下我们之前是不是学过scanner类,他是接收键盘输入的一个类,而Arrays类是操作数组的类。说白了java的学习就是在学习一个又一个的类! ? 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从 而可以对数据对象进行一些基本的操作。 而且Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用! 而"不用"使用对象来调用(注意:是"不用"?而不是?"不能") ?java.util.Arrays?类能方便地操作数组.?使用之前需要导包! 具有一下常用功能: 1.给数组赋值:通过?fifill?方法。 2.对数组排序:通过?sort?方法,按升序。 3.比较数组:通过?equals?方法比较数组中元素值是否相等。 4.查找数组元素:通过?binarySearch?方法能对排序好的数组进行二分查找法操作。 1.打印数组
2.数组排序public static void sort(int[] a)?:对指定的 int 型数组按数字升序进行排序。
3.二分查找在数组中查找指定元素并返回其下标 注意:使用二分搜索法来搜索指定的数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过sort方法等)。如果没有对数组进行排序,则结果是不确定的。 ?如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。 Arrays.binarySearch(); //二分查找法找指定元素的索引值(下标): 数组一定是排好序的,否则会出错。找到元素,只会返回最后一个位置
4.元素填充Arrays.fill(); //填充数组
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 19:27:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |