- for循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("a"); list.add("a"); list.add("a"); list.add("z"); list.add("s"); list.add("a"); //for循环遍历 //注意删除元素后集合长度发生,i一直向后增加 for (int i = 0; i < list.size(); i++) { if (list.get(i)=="a"){ list.remove(i); //i--;//可以对循环进行干涉,达到目的 } } }
结果:
[a, z, s]
加上i++
结果:
[z,s]
2. 增强for循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("a"); list.add("a"); list.add("a"); list.add("z"); list.add("s"); list.add("a"); //增强for循环 //不允许遍历时对元素进行操作,如果进行操作会抛出异常ConcurrentModificationException for (Object obj:list) { if (obj.equals("a")){ list.remove(obj); break;//操作一次后必须break结束循环,否则会抛出异常 } } System.out.println(list); }
未加break结果
Exception in thread “main” java.util.ConcurrentModificationException
at java.util.ArrayList
I
t
r
.
c
h
e
c
k
F
o
r
C
o
m
o
d
i
f
i
c
a
t
i
o
n
(
A
r
r
a
y
L
i
s
t
.
j
a
v
a
:
911
)
a
t
j
a
v
a
.
u
t
i
l
.
A
r
r
a
y
L
i
s
t
Itr.checkForComodification(ArrayList.java:911) at java.util.ArrayList
Itr.checkForComodification(ArrayList.java:911)atjava.util.ArrayListItr.next(ArrayList.java:861)
at collection.day3.CunDemo.main(CunDemo.java:26)
加上break结果
[a, a, z, s, a]
- 迭代器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("a"); list.add("a"); list.add("a"); list.add("z"); list.add("s"); list.add("a"); Iterator iterator = list.iterator(); //hasNext() 如果迭代具有更多元素,则返回 true 。 while(iterator.hasNext()){ Object obj = iterator.next();//返回迭代中的下一个元素。 iterator.remove();//Iterator中特有方法remove删除元素,从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 } System.out.println(list);*/ }
结果
[]
最后
以上就是高贵小蜜蜂最近收集整理的关于java中for循环、增强for循环、迭代器的删除元素操作使用注意(以Arraylist为例)的全部内容,更多相关java中for循环、增强for循环、迭代器内容请搜索靠谱客的其他文章。
发表评论 取消回复