Java数组技巧攻略

    昨天刚刚看了list和数组相互转换方法,今天刚好在优化别人代码时遇到,说下今天遇到的情况吧。

    有一个list的声明:List<Long> list = new ArrayList<Long>(),然后给这个list中添加了一些数据,最终要转换为Integer[] 数组,大概一看觉得很容易,直接用:Integer[]  contentList= list.toArray(new Integer[list.size()])。

    看似没问题,由于这段代码处于try catch中,所以也没看到什么异常,最后仔细检查,才发现是在转换时出了问题,问题出在Long不能直接转为Integer!看似很简单的问题,一不小心得花更多的时间来解决,细节决定成败呀,加油加油!

以下是转帖的文章,觉得挺不错的。原文链接:

http://www.csdn.net/article/2013-09-16/2816947-methods-for-java-arrays 

0.  声明一个数组(Declare an array) 

  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)

  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 array

  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)

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

4. 连接两个数组( Concatenate two arrays)

  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


你可能感兴趣的:(Java数组技巧攻略)