java - List与ArrayList
PHP中文网
PHP中文网 2017-04-18 09:42:00
[Java讨论组]

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(5)
PHPz

没啥区别。。数据类型的指定是在List<String>时候进行的。

JDK 1.7 的特性里增加了对类型推断的支持。

增强的对通用实例创建(diamond)的类型推断

  类型推断是一个特殊的烦恼,下面的代码: 
     Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); 

  通过类型推断后变成: 
     Map<String, List<String>> anagrams = new HashMap<>(); 
  这个<>被叫做diamond(钻石)运算符,这个运算符从引用的声明中推断类型。 
  
PHP中文网

没有区别, jdk1.7开始可以省略右边尖括号内的String。
(通过声明内的泛型来推测右边, 所以就不需要了。)

迷茫

如果是你表达的

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

这两个没啥区别,上面一个ArrayList同样会自动转换成String的泛型,list可存取的数据类型只能是String类型。而如果你的第一行代码改成

List list = new ArrayList();

这样就有很大的区别,list存取的数据类型是没有固定的,你可以存取String,Integer甚至Object类型。

阿神

第一个在jdk1.7之后才行,否则编译错误,后一个在1.7之前的写法,当然,1.7之后也可以这么写

ringa_lee

jdk1.7之后,没有区别

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号