Java ArrayList遍历修改代码实例解析

网友投稿 274 2023-04-06

Java ArrayList遍历修改代码实例解析

用for-each 边遍历ArrayList 边修改时:

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("aa");

list.add("bbhttp://");

list.add("cc");

list.add("dd");

System.out.println(list);

for (String s : list) {

if (s.equals("dd")) {

list.remove(s);

}

}

System.out.println(list);

}

会报错

可以改用如下方式:

① 用迭代器 iterator进行遍历删除

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("aa");

list.add("bb");

list.add("cc");

list.add("dd");

System.out.println(list);

Iterator iterator = list.iterator();

while (iterator.hasNext()) {

String next = iterator.next();

if (next.equals("dd")) {

iterator.remove();

}

}

System.out.println(list);

}

②:使用最原始的 for循环

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("aa");

list.add("bb");

list.add("cc");

list.add("dd");

System.out.println(list);

for (int i = 0; i < list.size(); i++) {

String s = list.get(i);

if (s.equals("dd")) {

list.remove(s);

}

}

System.out.println(list);

}

③:采用jdk8 Collection中新增的方法removeIf (个人推荐,简洁快捷新特性)

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("aa");

list.add("bb");

list.add("cc");

list.add("dd");

System.out.println(list);

list.removeIf(next -> next.equals("dd"));

System.out.println(list);

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解java NIO之Channel(通道)
下一篇:详细了解JAVA NIO之Buffer(缓冲区)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~