2010-11-18 129 views
2

非常簡單的問題,我想。我如何初始化一個名爲timeArrayList初始化ArrayList

謝謝。

+2

使用javadocs這樣的問題.https://duckduckgo.com/?q =!java + arraylist – zengr 2010-11-18 09:20:13

+0

'duckduckgo'滑稽域 – 2010-11-18 09:30:21

回答

9

這取決於你的意思是由初始化。爲了簡單地初始化變量time與參考值到一個新的ArrayList,你做

ArrayList<String> time = new ArrayList<String>(); 

(你想在清單上存儲的對象的類型更換String

如果您想放的東西在列表中,你可以做

ArrayList<String> time = new ArrayList<String>(); 
time.add("hello"); 
time.add("there"); 
time.add("world"); 

你也可以做

ArrayList<String> time = new ArrayList<String>(
    Arrays.asList("hello", "there", "world")); 

或使用實例初始化

ArrayList<String> time = new ArrayList<String>() {{ 
    add("hello"); 
    add("there"); 
    add("world"); 
}}; 
+0

'ArrayList time = new ArrayList ();'?爲什麼不'列表 time = new ArrayList ();'? (變量應儘可能指向接口) – 2010-11-18 10:09:32

+2

但是,我應該如何判斷在OP的情況下這是否可能? (也許他下面有'time.ensureCapacity(1000)'。)爲什麼這樣的初學者問題變得複雜? – aioobe 2010-11-18 10:13:57

1

< 1.5 JDK

List time = new ArrayList(); 

GT或當量1.5 JDK

List<T> time = new ArrayList<T>(); 
+1

這是java 1.4代碼。請使用'列表 time = new ArrayList ();'而不是 – 2010-11-18 10:10:42

2

Arrays.asList允許從值的列表構建List

然後你可以建立ArrayList通過將其由Arrays.asList產生的只讀列表。

ArrayList time = new ArrayList(Arrays.asList("a", "b", "c")); 

但是,如果你需要的是一個List聲明爲內聯,只是單純Arrays.asList去。

List time = Arrays.asList("a", "b", "c"); 
+0

在構造函數之前,我定義了像private int day這樣的屬性; 私人雙小時; – sark9012 2010-11-18 09:33:17

1
ArrayList<String> time = ArrayList.class.newInstance(); 
+2

不要這樣寫代碼。不要推薦其他人編寫這樣的代碼。它比'new'慢得多,你必須處理2個檢查過的異常。 (因爲你的代碼不處理異常,所以在技術上也是錯誤的。) – 2010-11-18 09:58:38

0

備選:

使用谷歌集合,你可以寫:

import com.google.collect.Lists.*; 

List<String> time = newArrayList(); 

你甚至可以指定List初始內容如下:

List<String> time = newArrayList("a", "b", "c");