V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
harley27
V2EX  ›  Java

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

  •  
  •   harley27 · 2019-09-02 12:05:43 +08:00 · 3274 次点击
    这是一个创建于 1938 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    表示感谢。

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

    对于第二个问题

    l.get(3) 就是第四个元素
    msaionyc
        5
    msaionyc  
       2019-09-02 12:42:17 +08:00
    底层其实是 iterator
    xaplux
        6
    xaplux  
       2019-09-02 12:51:16 +08:00
    Google: java foreach 语法糖
    harley27
        7
    harley27  
    OP
       2019-09-02 15:10:59 +08:00
    @Raymon111111 谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2535 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:14 · PVG 12:14 · LAX 20:14 · JFK 23:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.