當前位置:才華齋>IT認證>JAVA認證>

Java陣列定義常用方法

JAVA認證 閱讀(2.72W)

Java中的陣列、是一種簡單的線性資料儲存結構、他用犧牲自動擴充套件大小來換取與集合相比的唯一優勢——查詢效率的提升。Java中的陣列有什麼型別?我們要怎麼定義這些陣列呢?下面跟yjbys小編一起來學習Java陣列定義常用方法吧!

Java陣列定義常用方法

  java中有兩種資料型別:

a)引用型別

b)基礎型別

其中基礎型別又有兩種:

b1)數值型別

b2)及布林型別。

陣列——也為java的一個數據型別、歸類為引用型別。本文意圖說清楚兩點:

1、陣列的宣告以及初始化。

2、常用的陣列方法。

補充一點:對於我們常說的二維陣列、多維陣列其實是一維陣列的延伸、這裡暫時只圍繞一維陣列。

  【陣列的宣告及初始化】

1、陣列的宣告:

作為一種引用型別、就如我們平常使用引用型別的時候宣告一樣、一般有兩種寫法:

a) type[] arrayName; exp: String[] strArray;

b) type arrayName[]; exp: String strArray[];

第二種源於C的寫法、由於很容易造成混淆、所以現在基本不使用這種宣告方式了。

2、陣列的初始化:

陣列的初始化有兩種:

a) 靜態初始化——陣列大小由系統分配、我們只為陣列每個位置上賦值

String[] strArray1 = {"a", "b", "c", "d", "e"};

String[] strArray2 = new String[]{"a", "b", "c", "d", "e"};//在 new String[]中不能指定String陣列的大小!

b)動態初始化——只指定數值的大小、初始化工作由系統為我們完成(即為陣列的.每個位置賦初始值)

String[] strArray3 = new String[5];//此時String陣列的每個位置上的值都由系統來初始化、使用預設的值""

//我們能做的是動態的為strArray3每個位置上的值進行修改

for (int i = 0; i < th; i++) {

//這裡僅用原始的方法進行賦值。

strArray3[i] = strArray1[i];

}

  【陣列的常用方法】

package ulMethods;

import yList;

import ys;

import ections;

import Set;

import ;

import ent;

@SuppressWarnings("all")

public class ArrayUseFulMethoed {

private static int[] intArray = {1, 2, 3, 4, 5};

private static String[] strArray = {"a", "b", "c", "d", "e"};

/**

* 填充元素、比較大小、複製元素

*/

public static void testFillArray(){

//注意字串和物件的不同

Student[] student1 = new Student[4];

Student[] student2 = new Student[4];

tln(ls(student1, student2));//true

(student1, 0, 4, new Student(1,"chy"));

(student2, new Student(1,"chy"));

tln(ls(student1, student2));//false

String[] str1 = new String[4];

String[] str2 = new String[]{"a", "a", "a", "a"};

String[] str3 = {new String("a"), new String("a"), new String("a"), new String("a")};

(str1, "a");

tln(ls(str1, str2));//true

tln(ls(str2, str3));//true

String[] str4 = Of(str1, 2);//是將傳入的陣列拷貝len個元素到新的陣列、相當於複製本身的一部分或者全部形成一個全新的陣列

tln(th + "=======" + ring(str4));// 2=======[a, a]

String[] str5 = new String[8];

ycopy(str4, 0, str5, 6, 2);//是將str4從下標0開的2個元素拷貝到從下標6開始放置的陣列str5中

tln(th + "=======" + ring(str5));// 8=======[null, null, null, null, null, null, a, a]

}

/**

* 以字串的形式輸出指定陣列的“模樣”

*/

public static void printOriginalArray(){

String intArrayToString = ring(intArray);

tln(intArrayToString); //result: [1, 2, 3, 4, 5]

}

/**

* 將陣列轉化成List集合

* 注意:不能直接將int[]轉化為集合、因為asList()方法的引數必須是物件。應該先把int[]轉化為Integer[]。

* 對於其他primitive型別的陣列也是如此,必須先轉換成相應的wrapper型別陣列。

*/

public static void convetArrayToList(){

Integer[] integerArray = new Integer[th];

for (int i = 0; i < th; i++) {

integerArray[i] = intArray[i];

}

ArrayList integerList1 = new ArrayList(st(integerArray));

/*

* 不能寫成下面:

* ArrayList integerList2 = (ArrayList)st(integerArray);

* 返回的是List、強轉可以通過編譯、但是不能正常使用。

*/

for(int i : integerList1){

t(i);

}

//result: 12345

tln();

}

/**

* 將List集合轉換成陣列

*/

public static void convetListToArray(){

ArrayList strList = new ArrayList(st(strArray));

String[] strArrayFromList = new String[()];

ray(strArrayFromList);

tln(ring(strArrayFromList)); //result: [a, b, c, d, e]

/*

* 注意:不能寫成這樣:String[] strArrayFromList = (String[])ray(strArrayFromList);會丟擲ClassCastException。

* ray()與ray(T[] t)的區別在於:

* ray()返回的是一個Object[]、不能強轉成String[]、強轉的話可以通過編譯、但是不能進行String[]的操作

* 而ray(T[] t)會將list的值轉換成T型別的陣列。

*/

}

/**

* 將陣列轉換成Set集合

*/

public static void convertArrayToSet(){

Set set = new HashSet(st(strArray));

//Set具有無序性、所以輸出結構不一定是原來陣列元素存放順序

tln(set); //result: [d, e, b, c, a]

}

/**

* 判斷某個陣列中是否包含一個元素、思路:將陣列轉換成list使用list的contains方法

*/

public static void isContainObject(){

ArrayList strList = new ArrayList(st(strArray));

tln(ains("a")); //result: true

//另一種實現

(strArray);

if(rySearch(strArray, "c") >= 0){

tln(true);

}else{

tln(false);

}

}

/**

* 將兩個相同型別的陣列連線起來

*/

public static void connTwoSameArray(){

int[] intArray2 = new int[]{6, 7, 8, 9, 10};

}

/**

* 將陣列中資料排序

*/

public static void sortArray(){

String[] str = {"c", "a" ,"d" ,"z" };

(str);

tln(ring(str));

//反序、

(str, rseOrder());

tln(ring(str));

}

public static void main(String[] args) {

/*printOriginalArray();

convetArrayToList();

convetListToArray();

isContainObject();

convertArrayToSet();

sortArray();*/

testFillArray();

}

}