2016-12-01 56 views
0

如果我要創建一個數組,並與值初始化它,我會做創建與創建時提到的值一個ArrayList

int[] a = {1,2,3,4,5}; 

我願做ArrayList中的相同,並有像

ArrayList<Integer> al = new ArrayList<Integer>().addAll(Arrays.asList(1,2,3,4,5)); 

上述行代碼不起作用,我明白了。我試圖傳達我希望達到的目標。有沒有辦法在Java中做到這一點,而不必像做

ArrayList<Integer> al = new ArrayList<Integer>(); 
al.add(1);al.add(2);al.add(3);al.add(4);al.add(5); 

或者

ArrayList<Integer> alArrayList = new ArrayList<>(); 
alArrayList.addAll(Arrays.asList(1,2,3,4,5)); 
+1

列表 alArrayList = Arrays.asList(1,2,3,4,5); – Sanka

+0

或者與番石榴'Lists.newArrayList(1,2,3,4,5);'或'ImmutableList.of(1,2,3,4,5);'。 – dimo414

回答

2

使用,這需要收集作爲參數構造函數。這構造一個包含指定集合中的元素列表

ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); 
System.out.println(list); 

OR

List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5); 

如果你將看到的Arrays.asList()執行它返回一個包含指定元素的新的ArrayList。

@SafeVarargs 
@SuppressWarnings("varargs") 
public static <T> List<T> asList(T... a) { 
    return new ArrayList<>(a); 
} 
0
import java.util.ArrayList; 
import java.util.Arrays; 

public class Demo{ 
public static void main(String[] args) { 
    Integer[] a = { 10, 11, 41, 2, 43, 33, 4, 5, 67, 70, 7 }; 
    ArrayList<Integer> list = new ArrayList<Integer>(); 
    list.addAll(Arrays.asList(a)); 
    System.out.println(list); 
} 
} 
0

可以根本就如下:

List<Integer> al = Arrays.asList(1,2,3,4,5); 

ArrayList<Integer> al = (ArrayList<Integer>)Arrays.asList(1,2,3,4,5); 
+0

'的ArrayList 人=(ArrayList的)Arrays.asList(1,2,3,4,5)'將失敗在與'java.lang.ClassCastException'運行時 – Saravana