Java之數組

/*java

 * 數組的使用數組

 * 一、數據:相同類型數據的有序結合ide

 * 二、數組的長度是肯定的,一旦被建立將沒法更改this

 * 三、數組中的每一個元素必須相同,不能出現混合類型spa

 * 四、元素的數據類型能夠任意,主要包括基本類型和引用類型對象

 * 五、數組變量屬於引用變量,數組屬於對象,因此數組是存放在堆中,每一個元素至關於該對象的成員變量。排序

 * 索引

 * 注意:數組在聲明的時候沒有分配堆空間,不須要指定長度;當數組在實例化的時候,JVM會分配堆空間,因此此時須要指定數組長度it

 */for循環

import java.util.Arrays;;


public class Array_4_21_01 {

public static void main(String[] args) {

int[] array1; //聲明數組變量,不用指定長度

array1 = new int[10];  //數組實例化,須要指定長度

System.out.print("一維數組來啦-> ");

for (int i = 0; i < array1.length; i++) {

array1[i] = i;

System.out.print(array1[i]+" ");

}

System.out.println("");

System.out.println(Arrays.toString(array1));

System.out.println("-------------------------------");

/*

* 元素爲引用類型的數組

*/

Man[] mans; //聲明一個Man引用類型的數組變量

mans = new Man[5]; //實例化這個Man引用類型的數組

Man m1 = new Man(1, 27);

Man m2 = new Man(2, 28);

mans[0] = m1;

mans[2] = m2;

System.out.println("mans的數組值是 "+Arrays.toString(mans));

//靜態初始化

int[] array2 = {2,5,9};

Man[] mans2 = {

new Man(1,29),

new Man(2,30)

};

//動態初始化

int[] array3 = new int[2];

array3[0] = 1;

array3[1] = 2;

System.out.println("array3的數組值是 "+Arrays.toString(array3));

//數組的默認初始化,由於數組的元素至關於類的實例變量,因此數組在被分配空間的時候,每一個元素被按照實例變量的方式被隱式初始化

/*

* int[] a = new int[2]; ->初始化爲[ 0 , 0 ]

* boolean[] b = new boolean[2] ->初始化爲[ false , false ]

* String[] s = new String[2] ->初始化爲[ null , null ]

*/

//數組的copy,使用System.arraycopy這個靜態方法,System.arraycopy(原數組, 原數組起始位置, 目標數組, 目標數組起始位置, 拷貝多少個元素);

String[] s1 = {"Microsoft","IBM","Sun","Oracle","Apple"};

String[] s2 = new String[5];

System.arraycopy(s1, 0, s2, 0, s1.length);

System.out.println("s2這個數組是 "+Arrays.toString(s2));

//用加強型for循環遍歷數組

for (String e : s2) {

System.out.println(e);

}

//數組排序,主要按照元素的應用類型和基本類型分爲兩種,元素爲引用類型的數組排序咱們後面結合容器來理解

//二分法查找

int[] array4 = {1,3,232,23,543,12,59};

Arrays.sort(array4); //使用二分法查找以前,必須先對數組排序

System.out.println("該元素的索引是 "+Arrays.binarySearch(array4,12));

//填充

Arrays.fill(array4, 1, 4,100); //將數組array4從索引位置1開始3位填充爲100

System.out.println(Arrays.toString(array4));

//asList(結合容器理解)

/*

* 多維數組,多維數組的聲明和初始化是從低維到高維的順序進行

*/

//二維數組的靜態初始化

int[][] array5 = {

{1,2,3},

{3,4},

{2,5,8,9}

};

System.out.println("array5這個二維數組的一維數組值是 "+Arrays.toString(array5[0]));

for (int[] e : array5) {

for (int f : e) {

System.out.println(f);

}

}

//二維數組的動態初始化

int[][] array6 = new int[3][];

array6[0] = new int[]{1,2,3};

array6[1] = new int[]{3,4};

array6[2] = new int[]{2,5,8,9};

System.out.println("array6這個數組[2][3]的值是 "+array6[2][3]);

//獲取二維數組的第一維數組長度是 array6.length  ;  array6[0].length是獲取二維數組第一個數組的長度

  }

}


class Man {

private int age;

private int id;

public Man (int id,int age) {

super(); //

this.age = age;

this.id = id;

}

}



/*思考問題

 * 一、爲何須要數組這個概念?

 * 

 * 二、說出數組的三種初始化方式。

 * 

 * 三、數組的長度可變嗎?

 * 

 * 四、數組的複製使用哪一個類的方法實現較好?

 * 

 * 五、說說Arrays類的用法

 * 

 */

相關文章
相關標籤/搜索