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;
}
1
anofac 2019-10-15 11:21:00 +08:00
java 的 label 语法,有点像其他语言的 goto,但不全是。"found"只是 label 的名字
|
2
IamNotShady 2019-10-15 11:21:48 +08:00
|
3
phantomzz 2019-10-15 11:23:12 +08:00
可以看一下 java 跳出循环的几种方式,label 类似于 goto 语法,可以用来跳出多重循环
|
4
guyeu 2019-10-15 11:25:25 +08:00
这个是很早就有的一个 java 特性,可以命名一个语句块然后通过 break name 的方式跳出该语句块
|
5
Rwing 2019-10-15 11:25:38 +08:00
我比较好奇这 repo 存一堆 jdk 源码干什么。。。拿来当网盘吗?
|
6
guyeu 2019-10-15 11:26:17 +08:00
个人觉得和 goto 完全不同,它只是跳出而不是跳到,没办法用它来实现循环
|
7
kpppp OP |
8
lihongjie0209 2019-10-15 11:37:45 +08:00
高级一点的 break, 可以跳出多个循环
|
9
chengyiqun 2019-10-15 14:04:48 +08:00
@guyeu 相当于阉割版的 goto 语句
|
10
zazalu 2019-10-15 16:03:28 +08:00
很早就有的特性,就是一个 label,定位识别区分用的呗
|
11
NotFoundEgg 2019-10-15 16:49:30 +08:00
是一种支持多层 break 的标签
|
12
KINGOD 2019-10-16 01:20:04 +08:00
|