在初始化ArrayList
?
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> a = new ArrayList<>();
答案 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版本中,您不能使用代码的第二个版本。