麻烦叫我靓仔 2023-04-22 02:04 采纳率: 90.9%
浏览 13
已结题

Collection的removeIf方法

这里使用的是Collection的removeIf方法,但是需要在匿名内部类Predicate中加入,否则就报错,如果add()方法中加入的事字符串,而不是new对象的话,就不用再内部类中加入<>了


public class Test {
    public static void main(String[] args) {
        Collection coll = new ArrayList();
        coll.add(new Person("sss",22));
        coll.add(new Person("bbb",23));
        coll.add(new Person("fff",24));
        coll.add(new Person("aaa",22));

        coll.removeIf(new Predicate() {
            @Override
            public boolean test(Person person) {
                return person.getAge() ==24;
            }
        });

        System.out.println(coll.toString());
    }
}

class Person{
    String name;
    Integer age;

    public Person() {
    }

    public Person(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

展开全部

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-04-22 02:22
    关注

    基于Monster 组和GPT的调写:

    • 在removeIf方法中,传入了一个匿名内部类Predicate作为参数。Predicate是一个函数式接口,它有一个test方法用来对集合中的元素进行测试,如果测试结果为true,则将元素从集合中删除。在这个例子中,test方法判断Person对象的年龄是否为24,如果是,则返回true,表示需要删除该元素。
    • 需要注意的是,在匿名内部类Predicate中,需要指定泛型类型为Person,否则会出现编译错误。因为在集合中存储的是Person对象,所以需要指定Predicate的泛型类型为Person。
    • 另外,在add方法中添加的是字符串而不是对象时,因为字符串是已知类型的,编译器可以自动推断出类型,所以不需要在匿名内部类Predicate中指定泛型类型。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    麻烦叫我靓仔 2023-04-22 06:49

    我去,读起来都很舒服,完全明白了,谢谢大佬了

    回复
    麻烦叫我靓仔 2023-04-22 06:50

    果断关注一波

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月22日
  • 创建了问题 4月22日

悬赏问题

  • ¥15 传人记程序做的plc 485从机程序该如何写
  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
  • ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
  • ¥15 esium自定义材质拉伸问题
  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部