kpppp
V2EX  ›  Java

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

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