昨天剛剛看了list和數組相互轉換方法,今天恰好在優化別人代碼時遇到,說下今天遇到的狀況吧。
java
有一個list的聲明:List<Long> list = new ArrayList<Long>(),而後給這個list中添加了一些數據,最終要轉換爲Integer[] 數組,大概一看以爲很容易,直接用:Integer[] contentList= list.toArray(new Integer[list.size()])。數組
看似沒問題,因爲這段代碼處於try catch中,因此也沒看到什麼異常,最後仔細檢查,才發現是在轉換時出了問題,問題出在Long不能直接轉爲Integer!看似很簡單的問題,一不當心得花更多的時間來解決,細節決定成敗呀,加油加油!ide
如下是轉帖的文章,以爲挺不錯的。原文連接:優化
http://www.csdn.net/article/2013-09-16/2816947-methods-for-java-arrays spa
0. 聲明一個數組(Declare an array) .net
String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"a","b","c","d","e"};
1. 在Java中輸出一個數組(Print an array in Java)code
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]
2. 從數組中建立數組列表(Create an ArrayList from an array)orm
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]
3. 檢查數組中是否包含特定值(Check if an array contains a certain value)element
String[] stringArray = { "a", "b", "c", "d", "e" }; boolean b = Arrays.asList(stringArray).contains("a"); System.out.println(b); // true
4. 鏈接兩個數組( Concatenate two arrays)rem
int[] intArray = { 1, 2, 3, 4, 5 }; int[] intArray2 = { 6, 7, 8, 9, 10 }; // Apache Commons Lang library int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
5. 聲明一個數組內鏈(Declare an array inline )
method(new String[]{"a", "b", "c", "d", "e"});
6. 將數組元素加入到一個獨立的字符串中(Joins the elements of the provided array into a single String)
// 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
7. 將數組列表轉換成一個數組 (Covnert an ArrayList to an array)
String[] stringArray = { "a", "b", "c", "d", "e" }; ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray)); String[] stringArr = new String[arrayList.size()]; arrayList.toArray(stringArr); for (String s : stringArr) System.out.println(s);
8. 將數組轉換成一個集合(Convert an array to a set)
Set<String> set = new HashSet<String>(Arrays.asList(stringArray)); System.out.println(set); //[d, e, b, c, a]
9. 反向數組(Reverse an array)
int[] intArray = { 1, 2, 3, 4, 5 }; ArrayUtils.reverse(intArray); System.out.println(Arrays.toString(intArray)); //[5, 4, 3, 2, 1]
10. 刪除數組元素(Remove element of an array)
int[] intArray = { 1, 2, 3, 4, 5 }; int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array System.out.println(Arrays.toString(removed));
One more – convert int to byte array
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array(); for (byte t : bytes) { System.out.format("0x%x ", t); }
英文出自: Programcreek