Java陣列操作的10大方法

2014-08-27    分類:JAVA開發、程式設計開發、首頁精華4人評論發表於2014-08-27

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

下面是精心整理的Java陣列操作的10大方法,大部分程式碼都來自Stack Overflow。

0、定義一個Java陣列

String[] aArray = new String[5];
String[] bArray = {"a","b","c", "d", "e"};
String[] cArray = new String[]{"a","b","c","d","e"};

第一種是定義了一個陣列,並且指定了陣列的長度,我們這裡稱它為動態定義。

第二種和第三種在分配記憶體空間的同時還初始化了值。

1、列印Java陣列中的元素

int[] intArray = { 1, 2, 3, 4, 5 };
String intArrayString = Arrays.toString(intArray);

// print directly will print reference value
System.out.println(intArray);
// [I@7150bd4d

System.out.println(intArrayString);
// [1, 2, 3, 4, 5]

這裡的重點是說明了Java中陣列的引用和值得區別,第三行直接列印intArray,輸出的是亂碼,因為intArray僅僅是一個地址引用。第4行輸出的則是真正的陣列值,因為它經過了Arrays.toString()的轉化。對Java初學者來說,引用和值仍需重視。

2、從Array中建立ArrayList

String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
System.out.println(arrayList);
// [a, b, c, d, e]

為什麼要將Array轉換成ArrayList呢?可能是因為ArrayList是動態連結串列,我們可以更方便地對ArrayList進行增刪改,我們並不需要迴圈Array將每一個元素加入到ArrayList中,用以上的程式碼即可簡單實現轉換。

3、檢查陣列中是否包含某一個值

String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
// true

先使用Arrays.asList()將Array轉換成List<String>,這樣就可以用動態連結串列的contains函式來判斷元素是否包含在連結串列中。

4、連線兩個陣列

int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);

ArrayUtils是Apache提供的陣列處理類庫,其addAll方法可以很方便地將兩個陣列連線成一個陣列。

5、宣告一個陣列內鏈

method(new String[]{"a", "b", "c", "d", "e"});

6、將陣列中的元素以字串的形式輸出

// containing the provided list of elements
// Apache common lang
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
System.out.println(j);
// a, b, c

同樣利用StringUtils中的join方法,可以將陣列中的元素以一個字串的形式輸出。

7、將Array轉化成Set集合

Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
System.out.println(set);
//[d, e, b, c, a]

在Java中使用Set,可以方便地將需要的型別以集合型別儲存在一個變數中,主要應用在顯示列表。同樣可以先將Array轉換成List,然後再將List轉換成Set。

8、陣列翻轉

int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//[5, 4, 3, 2, 1]

依然用到了萬能的ArrayUtils。

9、從陣列中移除一個元素

int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));

再補充一個:將一個int值轉化成byte陣列

byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();

for (byte t : bytes) {
System.out.format("0x%x ", t);
}

譯文連結:http://www.codeceo.com/article/10-java-array-method.html
英文原文:Top 10 Methods for Java Arrays
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章