kpppp
V2EX  ›  Java

翻看 Java10 里面的 ArrayList 源码,remove 方法里面有个 found: {} 这是什么意思呢?

  •  
  •   kpppp · Oct 15, 2019 · 5026 views
    This topic created in 2452 days ago, the information mentioned may be changed or developed.
        public boolean remove(Object o) {
            final Object[] es = elementData;
            final int size = this.size;
            int i = 0;
            found: {
                if (o == null) {
                    for (; i < size; i++)
                        if (es[i] == null)
                            break found;
                } else {
                    for (; i < size; i++)
                        if (o.equals(es[i]))
                            break found;
                }
                return false;
            }
            fastRemove(es, i);
            return true;
        }
    

    地址: https://github.com/zxiaofan/JDK/blob/master/JDK10-Java%20SE%20Development%20Kit%2010/src/java.base/java/util/ArrayList.java

    12 replies    2019-10-16 01:20:04 +08:00
    anofac
        1
    anofac  
       Oct 15, 2019
    java 的 label 语法,有点像其他语言的 goto,但不全是。"found"只是 label 的名字
    0NF09LJPS51k57uH
        3
    0NF09LJPS51k57uH  
       Oct 15, 2019
    可以看一下 java 跳出循环的几种方式,label 类似于 goto 语法,可以用来跳出多重循环
    guyeu
        4
    guyeu  
       Oct 15, 2019
    这个是很早就有的一个 java 特性,可以命名一个语句块然后通过 break name 的方式跳出该语句块
    Rwing
        5
    Rwing  
       Oct 15, 2019
    我比较好奇这 repo 存一堆 jdk 源码干什么。。。拿来当网盘吗?
    guyeu
        6
    guyeu  
       Oct 15, 2019
    个人觉得和 goto 完全不同,它只是跳出而不是跳到,没办法用它来实现循环
    kpppp
        7
    kpppp  
    OP
       Oct 15, 2019
    @anofac
    @phantomzz
    @IamNotShady
    非常感谢您们的帮助
    lihongjie0209
        8
    lihongjie0209  
       Oct 15, 2019
    高级一点的 break, 可以跳出多个循环
    C02TobNClov1Dz56
        9
    C02TobNClov1Dz56  
       Oct 15, 2019
    @guyeu 相当于阉割版的 goto 语句
    zazalu
        10
    zazalu  
       Oct 15, 2019
    很早就有的特性,就是一个 label,定位识别区分用的呗
    NotFoundEgg
        11
    NotFoundEgg  
       Oct 15, 2019
    是一种支持多层 break 的标签
    KINGOD
        12
    KINGOD  
       Oct 16, 2019
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1334 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 17:16 · PVG 01:16 · LAX 10:16 · JFK 13:16
    ♥ Do have faith in what you're doing.