java中线性表删除元素和删除指定元素_Java元素删除结合的方法集合

49ab56208e8b4026e1aef01ed301b3ea.png

首先要看你的List是怎么生成的,比如:

List strList =Arrays.asList("a", "b", "aa", "ab", "ba");

这种方式生成的List是不能改变的(fixed size),具体可以参见源码。

e9a6c6249f914104bb579b5b3965eeb0.png

c1f833205308ddf0d8048cfcf589dc9c.png

比如下面这种方式生成的List是可以改变的:

List strList2 =new ArrayList<>();

strList2.add("a");

strList2.add("ab");

strList2.add("ac");

strList2.add("ad");

以下测试都采用这个List.

package com.cc.test;

import cn.hutool.core.lang.Console;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

public class TestDemo {

public static void main(String[] args) {

ArrayList list = new ArrayList<>();

list.add("a");

list.add("b");

list.add("c");

list.add("d");

list.add("e");

Iterator iterator = list.iterator();

while(iterator.hasNext()){

String next = iterator.next();

if(next.equalsIgnoreCase("a")){

iterator.remove();

}

}

for (String key : list) {

System.out.println(key);

}

}

}

接下来看看从Java 8 开始的删除:

1.removeIf方法

ArrayList list = new ArrayList<>();

list.add("a");

list.add("b");

list.add("c");

list.add("d");

list.add("e");

list.removeIf(s ->s.equals("a"));

list.forEach(System.out::println);

2.retainAll方法

List asList = Arrays.asList("a", "c", "b", "e", "g");

ArrayList list = new ArrayList<>();

list.add("a");

list.add("b");

list.add("c");

list.add("d");

list.add("e");

list.retainAll(asList); //使用retain来求交集,从而也可以实现去重的效果

System.out.println(list);

3.filter方法

strList2 = strList2.stream().filter( s -> !s.equals("a")).collect(Collectors.toList());将指定条件的元素过滤,再生成新的集合

ArrayList list = newArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");list.add("e");

list = list.stream().filter(s -> !s.equals("a").collect(Collectors.toList()));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值