Java中如何正确使用Collection移除元素并规避潜在问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1336个文字,预计阅读时间需要6分钟。
1. 前言:操作集合是Java编程人员几乎每天都要重复的事情。今天我们来研究一下从Java Collection中删除元素的方法。我构建了一个简单的集合,我们以此为例来展开探索。
1. 前言
操作集合是一个 Java 编程人员几乎每天都在重复的事情。今天我们来研究一下从 Java Collection 中删除元素的方法。我构建了一个简单的集合,我们以此为例子来展开探索。
List<String> servers = new ArrayList<>(); servers.add("Felordcn"); servers.add("Tomcat"); servers.add("Jetty"); servers.add("Undertow"); servers.add("Resin");
2. for 循环并不一定能从集合中移除元素
让我们使用传统的 foreach 循环移除 F 开头的假服务器,但是你会发现这种操作引发了 ConcurrentModificationException 异常。
// 错误的示范 千万不要使用 for (String server : servers) { if (server.startsWith("F")) { servers.remove(server); } }
难道 for 循环就不能移除元素了吗?当然不是!我们如果能确定需要被移除的元素的索引还是可以的。
本文共计1336个文字,预计阅读时间需要6分钟。
1. 前言:操作集合是Java编程人员几乎每天都要重复的事情。今天我们来研究一下从Java Collection中删除元素的方法。我构建了一个简单的集合,我们以此为例来展开探索。
1. 前言
操作集合是一个 Java 编程人员几乎每天都在重复的事情。今天我们来研究一下从 Java Collection 中删除元素的方法。我构建了一个简单的集合,我们以此为例子来展开探索。
List<String> servers = new ArrayList<>(); servers.add("Felordcn"); servers.add("Tomcat"); servers.add("Jetty"); servers.add("Undertow"); servers.add("Resin");
2. for 循环并不一定能从集合中移除元素
让我们使用传统的 foreach 循环移除 F 开头的假服务器,但是你会发现这种操作引发了 ConcurrentModificationException 异常。
// 错误的示范 千万不要使用 for (String server : servers) { if (server.startsWith("F")) { servers.remove(server); } }
难道 for 循环就不能移除元素了吗?当然不是!我们如果能确定需要被移除的元素的索引还是可以的。

