一、二维数组

     1.语法:

声明:数据类型 [] [] 数组名;

空间:数组名=new 数据类型[行数] [列数];

     2.使用

(1)通过行和列对二维数组进行访问:数组名[行标][列标]

        注:行标和列标都是从0开始

(2)定义方式:

(1) 声明的同时并分配空间:数据类型[][] 数组名 = new 数据类型[行数] [列数];

(2) 显示初始化:数据类型[] [] 数组名 = new 数据类型[] []{{值1,值2},{值3,值4},{值5,值6}};

注意:后面 {} 中 {}的个数决定行数,所以[] []中个不能再制定行数和列数。

(3) 显示初始化:数据类型[] [] 数组名 = {{值1,值2},{值3,值4}};

注意:声明和初始化必须一起完成。

二、数组排序

1.冒泡排序(算法):将相邻两个元素进行一一比较,元素大逐步后移(也可从大到小排序)

for(int i=1;i<a.length-1;i++){
    for(int j=0;j<a.length-i;j++){
    if(a[j]>a[j+i]){
        int temp=a[j];
         a[j]=a[j+1];
        a[j+1]=temp;
        }
    }
}

三、数组的扩容

     1.①先申请一个更大空间的新数组,通常新数组的长度是原数组长度的2倍

        ②将原数组中的元素进行一一复制到新数组中

        ③新地址覆盖旧地址

     2.

第一种

int[] a = new int[]{1,7,4,3};   // 1. 申请新数组 :长度为原有数组的2倍 
int[] b = new int[a.length*2];// 2. 将原有数组中内容进行一一拷贝到新数组中 
for(int i=0;i<a.length;i++){ 
 b[i] = a[i]; 
} 
// 3. 新的地址覆盖旧的地址 
a = b; 

第二种:

利用 System.arraycopy(a,0,b,0,a.length); // 完成 数组复制

参数说明:

第一个参数:原数组名

第二个参数:原数组拷贝的起始下标

第三个参数:新数组名

第四个参数:新数组的存储起始下标

第五个参数:拷贝的个数/长度

第三种:

利用 java.util.Arrays.copyOf(原数组名,新数组的长度) ; // 完成新数组的定义+数组的复制 参数说明:

第一个参数:扩容的数组名

第二个参数:指定新数组的长度

更多推荐