13.数组

来源:互联网 发布:c罗皇马 知乎 编辑:程序博客网 时间:2024/06/03 20:20
1.数组基础:
 (1)数组是一种引用类型
 (2)数组是一种简单的数据结构,线性的结构
 (3)数组是一个容器,可以用来存储其它元素(数组是可以存储任意数据类型的元素)
 (4)数组分为: 一维数组,二维数组,三维数组,多维数组。。。
 (5)数组中存储的元素类型是统一的
 (6)数组长度不可改变,数组一旦创建长度是不可变的,固定的
 (7)数组查找效率高:数组中存储元素的类型是统一的,每一个元素在内存中所占空间大小是
      相同的,知道数组的首元素内存地址,要查找元素只要知道下标就可以快速计算出偏移量,
 通过首元素的内存地址加上偏移量快速计算出要查找元素的内存地址,通过内存地址快速定位
 (8)数组增删效率低:当增加元素的时候,为了保证数组中元素在空间存储上是有序的,所以被添加
      元素位置后面的所有元素都要向后移动。删除元素也是,后面的所有元素都要向前移动

 (9)初始化数组两种方式:静态初始化 动态初始化

 (10)   数组的拷贝
 System.arraycopy(原数组,源数组的开始下标,目标数组,目标数组的开始下标,拷贝的长度);

public class test{public static void main(String[] args){int[] a1 = {100, 200, 150, 300};//int类型数组//int a1[] = {100, 200, 150, 300};也可以boolean[] a2 = {true, false, true};//boolean类型数组String[] strs = {"AB", "AC"};//String类型数组Object o1 = new Object();Object o2 = new Object();Object o3 = new Object();Object[] objs = {o1, o2, o3};//Object数组int[] a1 = new int[4];//动态初始化}}

2.二维数组

     二维数组是一个特殊的一维数组,在这个一维数组中每一个元素都是“一维数组”

public class test{public static void main(String[] args){int [][] a = {           {1,2,3},              {45,2},           {0} }; System.out.println(a.length + "个一维数组");//获取第一个一维数组int[] a0 = a[0];int a00 = a0[0];System.out.println(a00);//获取最后一个一维数组中最后一个元素System.out.println(a[a.length-1][a[a.length-1].length-1]);System.out.println(a[2][0]);//遍历二维数组for(int i=0;i<a.length;i++){for(int j=0;j<a[i].length;j++){ System.out.print(a[i][j]+ " "); }System.out.println();}  }}

3.
public class test{public static void main(String[] args){//二维数组的动态初始化//三个一维数组,每个一维数组四个元素int[][] a = new int[3][4];//遍历for (int i = 0; i < a.length ;i++ ){for(int j = 0; j < a[i].length; j++ ){System.out.print(a[i][j]+" "); }System.out.println();}  }}

    4.Arrys工具类

Arrys.sort();  排序

Arrays.binarySearch()