「java容器遍历删除」java集合遍历删除
今天给各位分享java容器遍历删除的知识,其中也会对java集合遍历删除进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java遍历list 并删除相同值对象
用一个for循环遍历List时,不能删除其中的元素。
用Iterator操作即可。
还有 Pro类要重写一下 toString方法。这样System.out.println里才能打印出来。
import java.util.*;
public class ListTest {
public static void main(String[] args) {
ListPro list = new ArrayList();
Pro p1 = new Pro("1000","1000");
Pro p2 = new Pro("1001","1002");
Pro p3 = new Pro("1003","1004");
Pro p4 = new Pro("1005","1006");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
for (IteratorPro i = list.iterator(); i.hasNext();) {
Pro o = i.next();
if(o.getProid().equals(o.getProName())){
i.remove();
}
}
System.out.println(list);
}
}
class Pro{
private String proid;
private String proName;
public String getProid() {
return proid;
}
public void setProid(String proid) {
this.proid = proid;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public Pro(String proid, String proName) {
super();
this.proid = proid;
this.proName = proName;
}
public Pro() {
}
public String toString() {
return proid + ":" + proName;
}
}
Java中list如何利用遍历进行删除操作
方法有很多,比如可以在for和foreach 等循环遍历,然后删除,
下面在介绍两种方案. 第一种.迭代循环, 然后删除. 第二种java8开始的流操作
import java.util.*;
import java.util.stream.Collectors;
public class MyListDemo {
public static void main(String[] args) {
test1(); //传统方法
test2(); // java8开始的新方法
}
// 传统的方法
public static void test1() {
// 创建一个list类
ListString list = new ArrayList(Arrays.asList("ab", "cd", "11", "ef"));
// 迭代遍历查找
IteratorString it = list.iterator();
while (it.hasNext()) {
String x = it.next();
if (x.equals("11")) {
it.remove(); // 用迭代器删除
}
}
System.out.println(list);
}
//下面是 JAVA8的处理方式
private static void test2() {
ListString list2=new ArrayList(Arrays.asList("ab","cd","11","ef"));
ListString list3=list2
.stream() //得到流,准备进行流处理
.filter(x-!x.equals("11")) // 过滤掉等于"11"的元素
.collect(Collectors.toList()); // 收集起来
System.out.println(list3);
}
}
JAVA中HashMap如何删除元素
HashMap删除元素根据其遍历方式一般有两种方法,实例演示如下:
一、采用foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况。
1、遍历如下:
2、此时删除HashMap中的元素,Java很有可能会在运行时抛出异常。
运行上面的代码,Java抛出了 java.util.ConcurrentModificationException 的异常。并附有如下信息。
可以推测,由于在遍历HashMap的元素过程中删除了当前所在元素,下一个待访问的元素的指针也由此丢失了。
二、采用迭代器遍历,不仅适用于HashMap,对其它类型的容器同样适用。
1、采用这种方法的遍历,可以用下文提及的方式安全地对HashMap内的元素进行修改,并不会对后续的删除操作造成影响。
2、运行结果没有显示,表明HashMap中的元素被正确删除了,代码如下:
扩展资料:
HashMap的遍历中删除元素的特殊情况:
如果HashMap中的键值同样是一个HashMap,假设你需要处理的是 HashMapHashMapString, Integer, Double myHashMap 时,可能需要修改myHashMap中的一个项的键值HashMap中的某些元素,之后再将其删除。
这时,单单依靠迭代器的 remove() 方法是不足以将该元素删除的。
具体代码如下:
原因在于,迭代器遍历时,每一次调用 next() 函数,至多只能对容器修改一次。上面的代码则进行了两次修改:一次添加,一次删除。
java List 遍历和删除 急
List可以用序号来遍历,但通常推荐使用iterator来遍历
Iterator itr = list.iterator();
while (itr.hasNext()) {
Object nextObj = itr.next();
}
如果要全部删除,用clear()方法是最简单的。
另外,Iterator也带有remove()方法,可以在遍历的时候,根据一定条件来进行删除。
示例:
import java.util.*;
public class Test {
public static void print(ListInteger list) {
IteratorInteger itr = list.iterator();
while (itr.hasNext()) {
System.out.print(itr.next());
System.out.print(", ");
}
System.out.println();
}
public static void main(String[] args) {
ListInteger s = new ArrayListInteger();
for (Integer i = 0; i 10; i++) {
s.add(i);
}
print(s);
IteratorInteger itr = s.iterator();
while (itr.hasNext()) {
Integer i = itr.next();
if (i % 3 == 0) {
itr.remove();
}
}
print(s);
}
}
java容器遍历删除的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java集合遍历删除、java容器遍历删除的信息别忘了在本站进行查找喔。
发布于:2022-12-08,除非注明,否则均为
原创文章,转载请注明出处。