初始化集合

时间:2013-07-11 10:40:51

标签: java

在初始化ArrayList

时,以下两个语句之间有什么区别?
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> a = new ArrayList<>();

4 个答案:

答案 0 :(得分:13)

在Java 1.7之前,只允许这一个:

ArrayList<String> a = new ArrayList<String>();

在1.7中,这是添加的,这是相同但更短的:(所有程序员都很懒)

ArrayList<String> a = new ArrayList<>();

答案 1 :(得分:4)

后者使用Java 7中引入的推断类型。语法(称为菱形运算符)对于Java 1.7之前的集合是非法的,因此前者用于那些早期版本。

钻石操作员降低了声明的详细程度。

答案 2 :(得分:3)

没有区别。第二个选项(称为Diamond Operator)是一个快捷方式。编译器将推断通用ArrayList的类型参数必须是String。

答案 3 :(得分:0)

第二个选项是使用java 7中引入的概念 - 推断类型。除此之外,假设您使用的是java 7,两个调用的效果应该相同。在早期的Java版本中,您不能使用代码的第二个版本。