亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一行中初始化ArrayList

在一行中初始化ArrayList

ABOUTYOU 2019-06-20 10:32:30
在一行中初始化ArrayList我想為測試目的創建一個選項列表。一開始,我做了這樣的事:ArrayList<String> places = new ArrayList<String>();places.add("Buenos Aires");places.add("Córdoba");places.add("La Plata");然后,我將代碼重構如下:ArrayList<String> places = new ArrayList<String>(     Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));有更好的方法嗎?
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

實際上,可能是初始化ArrayList是您編寫的方法,因為它不需要創建新的List以任何方式:

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

問題是,需要輸入相當多的類型才能引用它。list舉個例子。

還有其他方法,例如使用實例初始化器(也稱為“雙大括號初始化”)創建匿名內部類:

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

但是,我不太喜歡這個方法,因為您最終得到的是ArrayList它有一個實例初始化器,創建這個類只是為了創建一個對象-對我來說,這似乎有點過火了。

如果收集文字提案錢幣工程已被接受(計劃在Java 7中引入它,但它也不太可能是Java 8的一部分):

List<String> list = ["A", "B", "C"];

不幸的是,它不會在這里幫助您,因為它將初始化一個不可變的List而不是ArrayList,而且,如果將來的話,它還沒有上市。


查看完整回答
反對 回復 2019-06-20
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

如果你把它聲明為List-它一定要是一輛ArrayList嗎?

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

或者,如果您只有一個元素:

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

這意味著places不變(試圖更改它將導致UnsupportedOperationException(要拋出的異常)。

創建一個可更改的列表,這是一個具體的列表。ArrayList您可以創建一個ArrayList從不變的列表中:

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


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 990 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號