2010-11-18 130 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");