java中新的ArrayList的两种方法

时间:2015-08-28 07:46:02

标签: java

通常,我可以用这种方式新建一个ArrayList(如果element是String):

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

但是,我找到了一种新方法:

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

如果列表中的元素是复杂类型,似乎我可以通过第二种方式保存很多代码。

这些之间有什么区别吗?

3 个答案:

答案 0 :(得分:3)

在JDK 1.7中添加了类型推断,第二种风格。

  

如果列表中的元素是复杂类型,似乎我可以通过第二种方式保存很多代码。

如果您使用的是1.7或+,那么它会自动推断出来,这意味着ArrayList获取了它声明的List的类型。

称为Diamond运算符,菱形运算符的目的是简化泛型类的实例化。

答案 1 :(得分:2)

是的,在Java(编译器)版本1.7之前不支持第二个版本。

因此,如果您希望源代码可以与JDK 1.6兼容,则无法使用新语法。

答案 2 :(得分:2)

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

这是在{7}中引入的Type Inference for Generic Instance Creation(&lt;&gt;非正式地称为“菱形运算符”)的示例。

为了简化代码,我们鼓励您在Java 7或更高版本上使用它。