初始化一个ArrayList

10
非常简单的问题,我认为。如何初始化一个名为timeArrayList
谢谢。

2
请参考Javadocs了解如何使用ArrayList。 - zengr
5个回答

15

这取决于您所说的 initialize 的含义。若要简单地使用新的 ArrayList 引用值初始化变量 time,可以执行以下操作:

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");
}};

ArrayList<String> time = new ArrayList<String>(); 为什么不用 List<String> time = new ArrayList<String>(); 呢?(变量应尽可能指向接口) - Sean Patrick Floyd
2
但是,我怎样才能确定在OP的情况下是否可能呢? (也许他紧接着就执行了time.ensureCapacity(1000)。)为什么要为一个初学者的问题增加复杂性呢? - aioobe

7

Arrays.asList 允许您从一组值构建一个 List

然后,通过传递由 Arrays.asList 生成的只读列表来构建您的 ArrayList

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

但如果你只需要内联声明一个List,那么就使用Arrays.asList

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

在构造函数之前,我定义了属性,例如私有整型变量day和双精度浮点型变量hours。 - sark9012

1

< 1.5 jdk

List time = new ArrayList();

大于或等于1.5 JDK

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

1
这是Java 1.4代码,请使用List<String> time = new ArrayList<String>(); - Sean Patrick Floyd

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

2
不要编写这样的代码,也不要建议其他人编写这样的代码。它比“new”慢得多...而且你必须处理2个已检查的异常。(由于您的代码没有处理这些异常,因此从技术上讲是错误的。) - Stephen C

0

另一种方法:

使用Google Collections,您可以编写以下代码:

import com.google.collect.Lists.*;

List<String> time = newArrayList();

你甚至可以按照以下方式指定 List 的初始内容:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接