Java 數組詳解 - 用法、遍歷、排序、實用API


數組,就是相同數據類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區分他們的變量的集合,這個名字稱為數組名,編號稱為下標。

組成數組的各個變量稱為數組的分量,也稱為數組的元素,有時也稱為下標變量。

數組是在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來的一種形式。這些按序排列的同類數據元素的集合稱為數組。

1初始化數組

動態初始化

Java |  復制
1
2
3
4
5
6
7
8
int [] array =  new  int [ 3 ];
// 兩種方式都可以
// int array[] = new int[3];
array[ 0 ] =  1 ;
array[ 1 ] =  2 ;
array[ 2 ] =  3 ;
 
System.out.println(array[ 0 ]);

靜態初始化

Java |  復制
1
2
3
4
5
int [] array = {  1 2 3 4  };
int [] array1 =  new  int [] {  1 2 3 4  };
 
System.out.println(array[ 2 ]);
System.out.println(array1[ 2 ]);

默認初始化

Java |  復制
1
2
int [] array =  new  int [ 4 ];
System.out.println(array[ 2 ]);

2獲取數組的長度

Java |  復制
1
2
3
int [] array =  new  int [ 10 ];
int  length = array.length;
System.out.println( "數組array的長度是:"  + length);

3二維數組

二維數組初始化

同一維數組一樣,共有4總不同形式的定義方法:

Java |  復制
1
2
3
4
int [][] array1 =  new  int [ 10 ][ 10 ];
int  array2[][] =  new  int [ 10 ][ 10 ];
int  array3[][] = { {  1 1 1  }, {  2 2 2  } };
int  array4[][] =  new  int [][] { {  1 1 1  }, {  2 2 2  } };

不定長二維數組

Java |  復制
1
2
3
4
int [][] array =  new  int [ 3 ][];
array[ 0 ] =  new  int [ 1 ];
array[ 1 ] =  new  int [ 2 ];
array[ 2 ] =  new  int [ 3 ];

獲取二維數組的長度

Java |  復制
1
2
3
4
5
6
int  length1 = array.length;
int  length2 = array[ 0 ].length;
// 獲取二維數組的第一維長度(3)
System.out.println(length1);
// 獲取二維數組的第一維的第一個數組長度(1)
System.out.println(length2);

4數組遍歷

傳統方式遍歷

Java |  復制
1
2
3
4
int [] array =  new  int [] {  1 2 3  };
for  ( int  i =  0 ; i < array.length; i++) {
     System.out.println( "array["  + i +  "] = "  + array[i]);
}

增強for循環方式遍歷

Java |  復制
1
2
3
4
int [] array =  new  int [] {  1 2 3  };
for  ( int  i : array) {
     System.out.println(i);
}

5數組排序

Java |  復制
1
2
3
int [] array = {  3 2 1 4 5  };
Arrays.sort(array);
System.out.println(Arrays.toString(array));

另:常用的排序方法有冒泡排序、快速排序、選擇排序、插入排序、希爾(Shell)排序、堆排序。可參考Java 數組排序

6數組的復制、插入和合並

參考:Java 一維數組復制、插入和合並

7實用API

輸出數組

Java |  復制
1
2
int [] array = {  1 2 3  };
System.out.println(Arrays.toString(array));

數組轉List

Java |  復制
1
2
3
String[] array = {  "a" "b" "c" "d" "e"  };
List<String> list =  new  ArrayList<String>(Arrays.asList(array));
System.out.println(list);

數組轉Set

Java |  復制
1
2
3
String[] array = {  "a" "b" "c" "d" "e"  };
Set<String> set =  new  HashSet<String>(Arrays.asList(array));
System.out.println(set);

List轉數組

Java |  復制
1
2
3
4
5
6
7
8
List<String> list =  new  ArrayList<String>();
list.add( "a" );
list.add( "b" );
list.add( "c" );
String[] array =  new  String[list.size()];
list.toArray(array);
for  (String s : array)
     System.out.println(s);

數組中是否包含某個值

Java |  復制
1
2
3
String[] array = {  "a" "b" "c" "d" "e"  };
boolean  b = Arrays.asList(array).contains( "a" );
System.out.println(b);

數組合並

Java |  復制
1
2
3
4
int [] array1 = {  1 2 3 4 5  };
int [] array2 = {  6 7 8 9 10  };
int [] array = org.apache.commons.lang.ArrayUtils.addAll(array1, array2);
System.out.println(Arrays.toString(array));

String數組轉字符串(使用指定字符拼接)

Java |  復制
1
2
3
String[] array = {  "a" "b" "c"  };
String str = org.apache.commons.lang.StringUtils.join(array,  ", " );
System.out.println(str);

數組逆序

Java |  復制
1
2
3
int [] array = {  1 2 3 4 5  };
org.apache.commons.lang.ArrayUtils.reverse(array);
System.out.println(Arrays.toString(array));

數組元素移除

Java |  復制
1
2
3
int [] array = {  1 2 3 4 5  };
int [] removed = org.apache.commons.lang.ArrayUtils.removeElement(array,  3 );
System.out.println(Arrays.toString(removed));

8數組異常

1. 數組下標越界異常,java.lang.ArrayIndexOutOfBoundsException

在java中,數組下標從0開始,我們定義了一個長度為3的數組,想要從中取出第四位,便會拋出此異常。

Java |  復制
1
2
int [] array =  new  int [] {  1 2 3  };
System.out.println(array[ 3 ]);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM