要想在集合遍历的过程中删除指定元素,就务必使用迭代器自身的remove方法; 再来看看内部类Itr的remove()方法,在删除元素后,有这么一句expectedModCount = modCount,同步修改expectedModCount 的值。所以,如果需要在使用迭代器迭代时,删除元素,可以使用迭代器提供的remove方法。 其他集合(Map/Set)使用迭代器迭代也是一样。
上面的代码演示了如何使用增强for循环遍历HashSet集合中的元素。 使用迭代器遍历Set Set<String>set=newHashSet<>();set.add("apple");set.add("banana");set.add("orange");Iterator<String>iterator=set.iterator();while(iterator.hasNext()){Stringstr=iterator.next();System.out.println(str);} 1. 2...
解决方法为以下两个(但一般不建议我们在遍历中用不是遍历本身的函数删除元素,见下节关于“ConcurrentModificationException”的内容): 1、对于此情况,我一般都从后面开始遍历,以避免问题: importjava.util.ArrayList;importjava.util.List;publicclassListTest_Work {publicstaticvoidmain(String[] args) { List<String>...
先来一下普通的用迭代器(Iterator)遍历删除元素的解决方案: 最理想的方法应该是使用Iterator类的remove()方法: voidremove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。 所以在程序中运用it.remove()即可成功删除元素 还有一种比较不错的方法是用HashSet的clone()方法拷贝给另一个临时...
//1、普通for循环遍历Integer baseNum=9;//以这个为基础 删除掉>=这个值的元素System.out.println("剩余长度:"+list.size()+"---"+list);for(int i=0;i<list.size();i++){if(list.get(i)>=baseNum)list.remove(i);}System.out.println("剩余长度:"+list.size()+"---"+list);输出结果如下...
在通过接口返回前,需要为一个set中的所有元素赋值,然后剔除掉一些不符合条件的元素,最后返回。代码结构大概如下: 代码 Set<Item> sets = Sets.newHashSet(); sets.addAll(items); ... setValue(sets) ; //剔除sets中不符合条件的元素 **sets.removeIf(Predicate filter);** ...
要从Set集合中删除元素,可以使用remove方法。这将删除指定元素。 代码语言:javascript 复制 fruits.remove("香蕉"); 3.3 查询元素 要查询是否包含某个元素,可以使用contains方法。 代码语言:javascript 复制 boolean hasApple=fruits.contains("苹果"); 4. 遍历 Set 集合 ...
Set集合给我们提供了一系列常用的方法,用于添加、删除、查找、遍历和获取集合元素等操作,下面是Set集合中常用方法的实现过程。3.1 添加元素 我们可以使用add()方法进行元素的添加。该方法用于向Set集合添加元素,如果元素已经存在,则不会添加;如果添加成功,则返回true,否则返回false。该方法的示例代码如下:3.2 ...
5、遍历Set 可以使用for-each循环遍历Set中的元素。以下是遍历Set的示例代码:for (String fruit : hashSet) { System.out.println(fruit);}for (String fruit : linkedHashSet) { System.out.println(fruit);}for (String fruit : treeSet) { System.out.println(fruit);} 二、List的操作 1、...
用Iterator 遍历 Iterator it = set.iterator()while(it.hasNext()){ String str = it.next();if("要删的" .equals(str)){ it.remove();} }