初始化ArrayList

时间:2018-03-26 08:42:09

标签: java arraylist

什么是最正确和推荐的java表达式:

new ArrayList<>();

或者

new ArrayList<String>();

我的问题出现在包含任何类型的任何Object上(例如Map)。

3 个答案:

答案 0 :(得分:9)

第一种方法在Java 7中有效,你不需要使用名为Diamond Operator的类型init。

  

只要编译器可以从上下文中推断出类型参数,就可以用一组空的类型参数(&lt;&gt;)替换调用泛型类的构造函数所需的类型参数。这对尖括号被非正式地称为钻石。

菱形运算符的目的是简化泛型类的实例化。所以只是为了让事情变得简单,首选。

答案 1 :(得分:0)

自Java 7以来,Diamond运算符用于降低冗长度 如果您使用版本&gt; = 7,建议使用第一个版本 浏览this

答案 2 :(得分:0)

从Java&gt; = 7没有一个比其他更好。编译器基本上会以相同的方式处理它们。

在Java 7之前,你必须具体说明你的通用类型。

List<String> myStrings = new ArrayList<String>();

但是从Java 7开始,你可以做到:

List<String> myStrings = new ArrayList<>();

编译器会找到你的Collection的rigth目标类型并注入你的Collection。这称为Type Inference for Generic Instance Creation

再一次没有一个比另一个更好或推荐,它只是为了方便你的工作,以便你编写更少的代码。如果您是一位试图理解该语言的新java程序员,那么您应该从开始。如果您是一位经验丰富的程序员,那么您可以执行后者