如何經過一行代碼初始化ArrayList

常見方式

實際上,也許「最好」的方式,就是你寫的這個方式,由於它不用再建立新的List:java

ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");

只是這個方式看上去要多寫些代碼,讓人鬱悶git

匿名內部類

固然,還有其餘方式,例如,寫一個匿名內部類,而後在其中作初始化(也被稱爲 brace initialization):github

ArrayList<String> list = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
}};

可是,我不喜歡這個方式。只是爲了作個初始化,卻要在ArrayList的同一行後面加這麼一坨代碼。spa

Arrays.asList

List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata");

Collections.singletonList

List<String> places = Collections.singletonList("Buenos Aires");

注意:後面的這兩種方式,獲得的是一個定長的List(若是add操做會拋異常)。code

若是你須要一個不定長的List,能夠這樣作:orm

ArrayList<String> places = new ArrayList<>(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));
相關文章
相關標籤/搜索