遍历Set集合的几种方法:
- 用foreach遍历
- 用Iterator迭代器遍历
- 用toArray方法转成数组再遍历(不推荐)
删除Set集合中某一个元素:
错误的操作示范:
public static void main(String[] args) {
Set<String> set= new Set<>();
set.add("Java");
set.add("C++");
set.add("Python");
// 1. 错误示范①——在foreach循环里删除元素
for (String str : set){
if(str.equals("Java")){
set.remove(str);
}
}
// 2. 错误示范②——用Itearator迭代器遍历时用Set自带remove方法删除元素
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
if(iterator.next().equals("Java")){
set.remove(str);
}
}
}
上面的两种操作方式在Set集合中的元素大于1个时,会抛出ConcurrentModificationException(并发修改异常)
正确的操作示范:
public static void main(String[] args) {
Set<String> set= new Set<>();
set.add("Java");
set.add("C++");
set.add("Python");
// 正确示范——用Itearator迭代器本身的remove方法删除元素
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
if(iterator.next().equals("Java")){
iterator.remove();
}
}
}