Java中删除List中元素的方法大全

戚薇 Java经验 发布时间:2023-04-16 18:44:27 阅读数:4567 1
下文笔者讲述list中删除元素的方法大全,如下所示

List删除元素的实现思路

方式1:
   借助removeIf方法删除list中指定元素

方式2:
   借助迭代器中remove方法删除指定元素

方式3:
   倒序遍历的方式删除元素

方式4:
   for循环删除

方式5:
   增强for循环删除

方式6:
   iterator遍历删除
例:

jdk 1.8以后removeif方法删除元素

List<String> strList2 = new ArrayList<>();

strList2.add("java265.com-1");
strList2.add("java265.com-2");
strList2.add("java265.com-3");
strList2.add("java265.com-4");

strList2.removeIf(s->(s.equals("java265.com-3")));
System.out.println("参数"+strList2);

(使用迭代器中remove方法)

在使用迭代器遍历时
  可使用迭代器的remove方法
  因为Iterator的remove方法中 

public void testDel() {
	List<Integer> list = Lists.newArrayList();
	list.add(1);
	list.add(2);
	list.add(2);
	list.add(2);
	Iterator<Integer> iterator = list.iterator();
	while (iterator.hasNext()) {
	Integer integer = iterator.next();
	if (integer == 2)
	iterator.remove();
  }
}

(倒序遍历删除)

 
public void testDel() {
	List<Integer> list = Lists.newArrayList();
		list.add(1);
		list.add(2);
		list.add(2);
		list.add(2);
		list.add(2);
		for(int i=list.size()-1;i>=0;i--){
		if(list.get(i)==2){
			list.remove(i);
	  }
	}
}

for循环遍历list,然后删除

for(int i=0;i<list.size();i++){
    if(list.get(i).equals("del"))
        list.remove(i);
}

//此种删除方式会导致相应的异常发生
//list大小发生变化,而你的索引也在变化
//会导致你在遍历的时候漏掉某些元素

//如当你删除第1个元素后,继续根据索引访问第2个元素时
//因为删除的关系后面的元素都往前移动了一位
//所以实际访问的是第3个元素
//因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用

增强for循环

for(String x:list){
    if(x.equals("del"))
        list.remove(x);
}

iterator遍历

 
Iterator<String> it = list.iterator();
while(it.hasNext()){
    String x = it.next();
    if(x.equals("del")){
        it.remove();
    }
}
如果循环删除list中特定一个元素
   可使用以上方式中的任意一种
   但在使用中要注意上面分析的各个问题。

如果循环删除list中多个元素
   应该使用迭代器iterator方式
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202304/16816419036259.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者