int 數組轉 arraylist

普通整型數組 arr :

int[] arr = {1,2,3};

錯誤做法:

Arrays.asList(arr);

瞄一眼源碼,Arrays.asList() 返回的 ArrayList 是 java.util.Arrays 的一個靜態內部類 java.util.Arrays.ArrayList,而不是我們要的 java.util.ArrayList 。

    /**
     * Returns a fixed-size list backed by the specified array.
     * @param <T> the class of the objects in the array
     * @param a the array by which the list will be backed
     * @return a list view of the specified array
     */
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

    /**
     * @serial include
     */
    private static class ArrayList<E> extends AbstractList<E>
        implements RandomAccess, java.io.Serializable
    {
        private static final long serialVersionUID = -2764017481108945198L;
        private final E[] a;
    
        。。。

    }

正確的做法:

public static void main(String[] args) {

    int[] arr = {1,2,3};
    List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList());
    //ArrayList<Integer> list = (ArrayList<Integer>) collect;
    collect.add(4);
    collect.forEach(System.out::println);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章