如何用foreach删除TreeSet元素
时间: 2024-02-11 14:07:11 浏览: 135
在java中集合的使用
在Java 8及以上的版本中,可以使用forEach方法来遍历TreeSet集合并删除元素。具体步骤如下:
1. 使用forEach方法遍历TreeSet集合,并在lambda表达式中使用removeIf方法来删除元素。
2. 在removeIf方法中传入一个Predicate对象,该对象的test方法返回true表示需要删除该元素。
示例代码如下:
```java
TreeSet<Integer> set = new TreeSet<>();
set.add(10);
set.add(20);
set.add(30);
set.forEach(e -> {
if (e % 2 == 0) { // 删除偶数元素
set.remove(e);
}
});
```
在上述代码中,我们使用forEach方法遍历set集合,如果元素是偶数则删除。但是,运行上述代码会抛出ConcurrentModificationException异常,因为在遍历集合的同时修改了集合。为了避免这个问题,我们可以使用Iterator迭代器来遍历集合并删除元素,示例代码如下:
```java
TreeSet<Integer> set = new TreeSet<>();
set.add(10);
set.add(20);
set.add(30);
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()) {
Integer e = iterator.next();
if (e % 2 == 0) { // 删除偶数元素
iterator.remove();
}
}
```
在上述代码中,我们使用迭代器来遍历集合并删除偶数元素。由于迭代器支持删除操作,因此可以避免ConcurrentModificationException异常。
阅读全文