List<Sting> list =new ArrayList<>();和List<Sting> list =new ArrayList<String>();两者有何区别?
4 回答

慕哥9229398
TA贡献1877条经验 获得超6个赞
没啥区别。。数据类型的指定是在List<String>时候进行的。
JDK 1.7 的特性里增加了对类型推断的支持。
增强的对通用实例创建(diamond)的类型推断
类型推断是一个特殊的烦恼,下面的代码: Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); 通过类型推断后变成: Map<String, List<String>> anagrams = new HashMap<>(); 这个<>被叫做diamond(钻石)运算符,这个运算符从引用的声明中推断类型。

收到一只叮咚
TA贡献1821条经验 获得超4个赞
如果是你表达的
List<Sting> list =new ArrayList<>();
List<Sting> list =new ArrayList<String>();
这两个没啥区别,上面一个ArrayList同样会自动转换成String的泛型,list可存取的数据类型只能是String类型。而如果你的第一行代码改成
List list = new ArrayList();
这样就有很大的区别,list存取的数据类型是没有固定的,你可以存取String,Integer甚至Object类型。
添加回答
举报
0/150
提交
取消