「java容器遍历删除」java集合遍历删除

博主:adminadmin 2022-12-08 10:00:07 72

今天给各位分享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容器遍历删除的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。