Java 删除指定List 内的某个元素 具体代码实现模板 for 循环 int i=list.size()-1

方法一:过滤器 list.removeIf() 实现

 public List<User> selectUserList(User user){
	List<User> userList= userMapper.selectUserList();
	return userList.removeIf((User u)->!u.getSex().equals(user.getSex()));
}

具体如下:

使用list.removeIf()方法,removeIf()的入参是一个过滤条件,用来判断需要移除的元素是否满足条件。
原理:方法中设置了一个removeSet,把满足条件的元素索引坐标都放入removeSet,然后统一对removeSet中的索引进行移除

示例:将姓张的名字移除掉

List<String> nameList = new ArrayList<>(Arrays.asList("张三", "李四", "王五", "赵六"));
nameList.add("张七");
nameList.add("张八");
nameList.removeIf(o->o.startsWith("张"));
System.out.println(nameList);

方法二:for 循环 int i=list.size()-1 (倒序遍历元素然后删除)

正序删除元素会移位,那我们转变思维倒序遍历

List<String> nameList = new ArrayList<>(Arrays.asList("张三", "李四", "王五", "赵六"));
nameList.add("张七");
nameList.add("张八");
for (int i = nameList.size() - 1; i >= 0; i--) {
    String name = nameList.get(i);
    System.out.println("当前遍历对象===" + name);
    if (name.startsWith("张")) {
        nameList.remove(i);
    }
}
System.out.println(nameList);

方法三:foreach 循环

List<String> nameList = new ArrayList<>(Arrays.asList("张三", "李四", "王五", "赵六"));
nameList.add("张七");
nameList.add("张八");
List<String> removeList = new ArrayList<>();
for (String name : nameList) {
    if (name.startsWith("张")) {
        removeList.add(name);
    }
}
nameList.removeAll(removeList);
System.out.println(nameList);

参考链接

1. List的remove()方法详解

2. 【java】List对象集合去除特定对象的优雅写法(基于java8)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值