为什么 for ( Class i : XXX ) 语法的 XXX 除了放数组,还可以放一个 List<> ?

2019-09-02 12:05:43 +08:00
 harley27

帮人一助胜造七个浮屠,授人一课等于复习十遍。

请问:这个语法除数组外,是认 List 泛型接口,还是认一切泛型类?如果是认一切泛型类,它怎么知道这个类能不能历遍?

请问:List<> 实例怎么像数组那样,get 其中的“一个”?比如 x[2] 是第三个 x,那什么是第三个 List<> 实例?

表示感谢。

3247 次点击
所在节点    Java
7 条回复
MisakaTang
2019-09-02 12:22:18 +08:00
这不叫授课这叫帮人 google:
Java 要求集合必须实现 Iterable 接口,才能使用 for-each 语法糖遍历该集合的实例。
第二个问题请自行复习《数据结构》课程第一课: array 和 List 的区别
shadow0801
2019-09-02 12:25:54 +08:00
这玩意没记错的话应该是叫语法糖,编译器会做优化,所以你要去看它最后的样子。我印象也模糊了,等会也去谷歌一下看看。🤣
shadow0801
2019-09-02 12:30:45 +08:00
还有你最后的问题,要去看看 List 的定义了,提示一下,List 底层也可以用 array 实现。😂
Raymon111111
2019-09-02 12:40:51 +08:00
对于第一个问题, 你可以简单理解这是语法糖

对于第二个问题

l.get(3) 就是第四个元素
msaionyc
2019-09-02 12:42:17 +08:00
底层其实是 iterator
xaplux
2019-09-02 12:51:16 +08:00
Google: java foreach 语法糖
harley27
2019-09-02 15:10:59 +08:00
@Raymon111111 谢谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX