Java數組技巧攻略

    昨天剛剛看了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

  1. 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

  1. 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 arrayorm

  1. 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

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

4. 鏈接兩個數組( Concatenate two arrays)rem

  1. 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 )

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

6. 將數組元素加入到一個獨立的字符串中(Joins the elements of the provided array into a single String)

  1. // 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) 

  1. 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) 

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

9. 反向數組(Reverse an array)

  1. 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)

  1. 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 

  1. byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();  
       
    for (byte t : bytes) {  
       System.out.format("0x%x ", t);  
    }

英文出自: Programcreek

相關文章
相關標籤/搜索