<h4>数组概念</h4>
讯享网
- 数组是相同类型数据的有序集合。
- 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
- 每一个数据称做一个数组元素,每个数组元素可以通过一个下标来访问它们。
eg:整型数组1、2、3、4、5 eg:球员身上的号码 eg:数组下标从0开始
数组声明创建
数组声明语法:
法一:数组类型【】 变量名;
法二:数组类型 变量名【】;
detaType【】 arrayRefVar;//法一,首选
dataType arrayRefVar【】;//法二
创建数组语法:用new操作符来创建
//声明与创建分开:变量名=new 数组类型【数组大小】
//声明与创建同时:数组类型【】 变量名=new 数组类型【数组大小】
arrayRefVar=new dataType【arraySize】;
dataType【】 arrayRefVar=new dataType【arraySize】;
数组下标从0开始。

获取数组长度:arrays.length 数组名.length
讯享网

Java内存分析
栈:
存放基本变量类型(包含这个基本类型的具体数值)
堆:

三种初始化
静态初始化:
int array={1,2,3,4,5,6};
动态初始化:
int【】 array=new int【10】;
array【0】=1;
array【1】=2;
默认初始化:
默认为0或null

数组的基本特点
- 数组长度是确定的,数组一旦被创建,它的大小就是不可以改变的。
- 数组元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中。
数组的边界值
数组下标的合法区间:【0,length-1】,如果越界就会报错;


数组使用
普通的For循环
讯享网

For-Each循环
对应Java流程控制的增强for循环。
for(声明语句:表达式){
//执行语句
}
声明语句:类型与数组类型一致,作用域只在for循环中
表达式:要访问的数组名
特点:无下标


数组作方法入参
与普通方法相似
讯享网

数组作返回值
例题:反转数组,第一个值在最后输出,最后一个值在第一个输出


注意:j的赋值大小需要用数组长度-1 eg:int【10】,表示有10个元素,下标0~9,该处j表示下标,下标最大值为:数组名.length-1

多维数组
多维数组可以看成是数组的数组。eg:一维数组中的元素是数字,二维数组中的元素是数组

二维数组
int a[ ] [ ]=new int [ 2 ] [ 3 ] ;//a数组是一个两行三列的数组

讯享网

获取上述二维数组的长度


以上述二维数组为例,利用for循环输出所有元素

Arrays类
- 数组的工具类java.util.Arrays
- 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
- Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而”不用“使用对象来调用。
查看Arrays类
选中Arrays,Ctrl+左键,选中Structrue查看源码

常用功能:
toString()方法的使用
toString()可以打印数组元素。自定义打印数组元素printlnArray()方法


sort()方法的使用
sort能够使得数组从小到大排序
讯享网
fill()方法使用
给数组赋值
equals()使用方法
比较数组元素是否相等
讯享网
binaySearch()方法:对排序好的数组进行二分查找法操作
冒泡排序
八大排序算法之一,思想:相邻数字两两比较,小的在左边,大的在右边,如果不符和,则两个数字交换位置。最大交换次数为n-1次
对{2,6,5,8,9,1,4}进行排序

稀疏数组
解释:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式:
- 记录数组一共有几行几列,有多少个不同值。
- 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模。

编写一个11行11列的盘,将原盘构造成稀疏数组,将稀疏数组还原。
讯享网

代码解释:




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198586.html