为了账号安全,请及时绑定邮箱和手机立即绑定

List与ArrayList

List与ArrayList

元芳怎么了 2019-03-20 11:19:29
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(钻石)运算符,这个运算符从引用的声明中推断类型。


查看完整回答
反对 回复 2019-04-23
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-04-23
?
收到一只叮咚

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类型。


查看完整回答
反对 回复 2019-04-23
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-04-23
  • 4 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号