数组
1.什么是数组::
a.数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器;
b.数组里面既可以存储基本数据类型,也可以存储引用数据类型,但是只能存储同一种数据类型;
c.数组是一种简单的数据结构,线性的结构;
d.数组一旦创建其长度是不可变的;
e.数组是引用数据类型;
2.数组的分类:
a.一维数组
b.二维数组
c.三位数组
d.多维数组
3.定义一个数组:
int a[]={12,212,33,14};
一维数组
1.静态初始化数组:
a.数组初始化就是为数组开辟连续的内存空间,并为每个数组元素赋予值;
b.知道数组的首元素的内存地址,要查找的元素只要知道下标就可以快速的计算出偏移量,通过首元素内存地址加上偏移量可以快速计算出要查找元素的内存地址,通过内存地址快速定位该元素, 所以数组查找元素的效率较高;
c.数组下标是从0开始的
2.动态初始化数组:
a.动态初始化数组,会先在堆内存中分配这个数组,并且数组中每一个元素都采用默认值;
b.基本数据类型默认值为0;
c.动态声明一个int类型的数组,最多可以存储4个元素. int[] intArray = new int[4];
二维数组
1.一维数组里面只需要一个下标即可定位数组中的元素,二维数组需要两个下标才能够定位到数组中的元素。
2.二维数组其实就是一个元素为一维数组的数组;
3.格式:
数据类型[][] 变量名=new 数据类型[m][n];
m表示这个二维数组有多少个数组
n表示每一个一维数组的元素个数
举例:
int[][] arr=new int[3][2];
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是ar[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
数组扩容
1.创建一个长度更大的数组,然后将之前的旧数组拷贝到新的数组里面,通过这种方式来进行扩容;
2. System.arraycopy(src, 2, dest, 3, 3);
第一个参数: src 源数组;
第二个参数: srcPos 从源数组中那个索引位置开始拷贝;
第三个参数: dest 目标数组;
第四个参数: destPos 从目标数组中哪个索引位置开始放;
第五个参数: length 拷贝的元素的个数;
Arrays工具类
1.在java.util包里面有个Arrays类,里面提供了排序和二分法查找的方法,程序员直接调用就行,而且这些方法都是静态的,所以在使用时不用创建对象。
2.Arrays类位于java.util 包中,主要包含了操纵数组的各种方法,使用时导包:import java.util.Arrays
3.Arrays.sort(Object[] array, int from, int to)
功能:对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序)
浙公网安备 33010602011771号