java - 如何在 Java 中初始化 List<String> 对象?

标签 java list

我无法像下面的代码那样初始化列表:

List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));

我遇到以下错误:

Cannot instantiate the type List<String>

如何实例化 List<String> ?

最佳答案

如果您查看 API对于 List 你会注意到它说:

Interface List<E>

作为 interface 意味着它不能被实例化(不可能有 new List())。

如果您检查该链接,您会发现一些实现 Listclasses:

All Known Implementing Classes:

AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

其中一些可以被实例化(那些没有被定义为抽象类)。使用他们的链接了解更多关于他们的信息,即:了解哪个更适合您的需求。

最常用的3个大概是:

 List<String> supplierNames1 = new ArrayList<String>();
 List<String> supplierNames2 = new LinkedList<String>();
 List<String> supplierNames3 = new Vector<String>();

奖金:
您还可以使用 Arrays class 以更简单的方式用值实例化它,如下所示:

List<String> supplierNames = Arrays.asList("sup1", "sup2", "sup3");
System.out.println(supplierNames.get(1));

但请注意,您不能向该列表添加更多元素,因为它是 fixed-size

关于java - 如何在 Java 中初始化 List<String> 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395114/

相关文章:

java - 如何在 netbeans 中使用 choice.showOpenDialog(parent) ?

使用 ArrayList 时出现 java.lang.IndexOutOfBoundsException : Index: 0, 大小:0

Java Web Service(SOAP) 消息格式通用(名称/值属性)节点与特定节点

JAVA 8 : how to pass -xms and -xmx JVM values in the command

list - Scala groupby 元素类型

python - 我收到类型错误 : can only concatenate str (not "int") to str

r - 在列表上使用 purrr 在不同的列上进行变异

java - 使用 Dozer 将一种类型的列表转换为另一种类型的数组

java - 继承问题低层设计方法

Java SimpleDateFormat 返回 null,但仅在第二次调用时返回