JAVA之List过滤

这篇具有很好参考价值的文章主要介绍了JAVA之List过滤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

新建一个实体类

public class User {
    private Integer ID;
    private String name;
    private int age;
    private String birthday;

    public User(Integer ID, String name, int age, String birthday) {
        this.ID = ID;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public Integer getID() {
        return ID;
    }

    public void setID(Integer ID) {
        this.ID = ID;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

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

List过滤的三种方式:

  1. 通过java8中filter过滤器进行过滤
  2. 通过For循环遍历过滤
  3. 通过ForEach遍历过滤
public class FilteringList {

    /**
     * 通过java8中filter过滤器进行过滤
     * @param userList
     * @return
     */
    public List<User> filterByStream(List<User> userList){
        return userList.stream()
                .filter(user -> Objects.nonNull(user))
                .filter(user -> user.getAge()>=12)
                .collect(Collectors.toList());
    }

    /**
     * 通过For循环遍历过滤
     * @param userList
     * @return
     */
    public List<User> filterByFor(List<User> userList){
        List<User> newUserList = new ArrayList<>();
        for (User user : userList) {
            if(user != null && user.getAge()>=12){
                newUserList.add(user);
            }
        }
        return newUserList;
    }

    /**
     * 通过ForEach遍历过滤
     * @param userList
     * @return
     */
    public List<User> filterByForEach(List<User> userList){
        List<User> newUserList = new ArrayList<>();
        userList.forEach(user -> {
            if(user != null && user.getAge()>=12){
                newUserList.add(user);
            }
        });
        return newUserList;
    }
}

测试文章来源地址https://www.toymoban.com/news/detail-629967.html

public class TestFilteringList {
    public static List<User> userList;
    static {
        User zhangSan = new User(1,"张三",10,"2001-01-02");
        User liSi = new User(2,"李四",11,"2001-01-02");
        User wangWu = new User(3,"王五",12,"2003-01-02");
        User zhaoLiu = new User(4,"赵六",18,"2003-01-02");
        userList = Arrays.asList(zhangSan,liSi,wangWu,zhaoLiu);
    }

    @Test
    public void testFilterByStream(){
        FilteringList filteringList = new FilteringList();
        System.out.println("过滤前:" + userList);
        List<User> resUserList = filteringList.filterByStream(userList);
        System.out.println("过滤后:" + resUserList);
//        过滤前:
//        [User{ID=1, name='张三', age=10, birthday='2001-01-02'}, 
//        User{ID=2, name='李四', age=11, birthday='2001-01-02'}, 
//        User{ID=3, name='王五', age=12, birthday='2003-01-02'}, 
//        User{ID=4, name='赵六', age=18, birthday='2003-01-02'}]
//        过滤后:
//        [User{ID=3, name='王五', age=12, birthday='2003-01-02'}, 
//        User{ID=4, name='赵六', age=18, birthday='2003-01-02'}]

    }

    @Test
    public void testFilterByFor(){
        FilteringList filteringList = new FilteringList();
        System.out.println("过滤前:" + userList);
        List<User> resUserList = filteringList.filterByFor(userList);
        System.out.println("过滤后:" + resUserList);

//        过滤前:
//        [User{ID=1, name='张三', age=10, birthday='2001-01-02'}, 
//        User{ID=2, name='李四', age=11, birthday='2001-01-02'}, 
//        User{ID=3, name='王五', age=12, birthday='2003-01-02'}, 
//        User{ID=4, name='赵六', age=18, birthday='2003-01-02'}]
//        过滤后:
//        [User{ID=3, name='王五', age=12, birthday='2003-01-02'}, 
//        User{ID=4, name='赵六', age=18, birthday='2003-01-02'}]
    }

    @Test
    public void testFilterByForEach(){
        FilteringList filteringList = new FilteringList();
        System.out.println("过滤前:" + userList);
        List<User> resUserList = filteringList.filterByForEach(userList);
        System.out.println("过滤后:" + resUserList);
//        过滤前:
//        [User{ID=1, name='张三', age=10, birthday='2001-01-02'}, 
//        User{ID=2, name='李四', age=11, birthday='2001-01-02'}, 
//        User{ID=3, name='王五', age=12, birthday='2003-01-02'}, 
//        User{ID=4, name='赵六', age=18, birthday='2003-01-02'}]
//        过滤后:
//        [User{ID=3, name='王五', age=12, birthday='2003-01-02'}, 
//        User{ID=4, name='赵六', age=18, birthday='2003-01-02'}]
    }
}

到了这里,关于JAVA之List过滤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java 基础篇】Java List 详解

    在Java的集合框架中, List 接口是一个有序、可重复的集合,它扩展了 Collection 接口,并提供了一系列操作和方法来处理元素列表。本文将详细介绍Java中的 List 接口及其常见实现类,包括 ArrayList 、 LinkedList 和 Vector ,并提供一些示例代码。 List 接口继承自 Collection 接口,并添

    2024年02月11日
    浏览(34)
  • 【Java基础】Java中List集合的常用方法

    在Java编程中,List集合是最常用的一种数据结构之一。它具有动态扩容、元素添加、删除和查询等基础操作,可以存储各种类型的对象,并且支持泛型。在本文中,我将介绍Java List集合的常用方法,并通过实例演示这些方法的使用。 一、List集合的创建与初始化 在使用List集合

    2024年02月16日
    浏览(37)
  • java基础-List常用方法

    Collections.reverse(List) Collections.sort(List) 首先让自定义类实现Comparable自定义类名称,举例: 在需要排序处: 单一删除的话,可以用List自带的remove,然后break。不然如果是删index0,有可能死循环没结果。 推荐使用Iterator删除,因为不需要跳出循环 如果连续几次添加同一个对象,

    2024年02月22日
    浏览(41)
  • 使用java8 新特性stream流对List<Map<String, Object>>集合进行遍历、过滤、查询、去重、排序、分组

    对于一个ListMapString, Object类型的数据,可以使用Java 8的新特性stream流来进行遍历、过滤、查询、去重、排序、分组等操作。 遍历: 过滤: 查询: 去重: 排序: 分组:

    2024年02月10日
    浏览(67)
  • Java语言 Iterator 如何装换成 List

    在 Java 中,迭代器(Iterator)是一种用于遍历集合中元素的对象,它提供了一种简单而一致的方式来访问集合中的元素,而不需要暴露集合内部的结构。如果我们需要将一个迭代器逆向转换成 List 集合,可以使用 ListIterator 接口来实现。 ListIterator 接口是 Iterator 接口的子接口,

    2024年02月14日
    浏览(43)
  • [开发|java] java list 取某个属性最大的项

    示例代码: 在这个例子中, ageComparator 使用 Comparator.comparingInt() 方法来创建一个比较器,以便根据年龄属性进行比较。然后, Collections.max() 方法使用这个比较器来找到年龄属性最大的那个 Person 对象。

    2024年02月10日
    浏览(47)
  • Java基础_集合类_List

    类图: (1)AbstractCollection Collection接口的骨架式实现类,最小化实现Collection接口的代价。 (2)AbstractList List接口的骨架式实现类,最小化实现List接口的代价。**“随机访问”**数据存储。 提供了iterator()、listIterator()方法的实现。 重要属性 : protected transient int modCount;【 修改

    2024年04月28日
    浏览(44)
  • Java基础 -04 List之CopyOnWriteArrayList

    java集合有蛮多的类型,今天我们以CopyOnWriteArrayList和Vector进行相关介绍。 CopyOnWriteArrayList是Java集合框架中的一个 线程安全的List实现类 。它通过在修改操作时创建一个新的副本来实现线程安全性,因此称为\\\"写时复制\\\"。 Copy-On-Write简称 COW ,是一种用于程序设计中的优化策略。

    2024年01月18日
    浏览(34)
  • java基础 -02java集合之 List,AbstractList,ArrayList介绍

    在正式List之前,我们先了解我们补充上篇Collection接口的拓展实现,也就是说当我我们需要实现一个不可修改的Collection的时候,我们只需要拓展某个类,也就是AbstractCollection这个类,他是Collection接口的骨干实现,并以最大限度的实现了减少此接口所需要的工作; 如上两图进行

    2024年01月20日
    浏览(42)
  • java基础 - 03 List之AbstractSequentialList、LinkedList

    上一篇我们围绕了ArrayList以及List进行简单介绍,本篇我们将围绕AbstractSequentialList、LinkedList进行。 AbstractSequentialList 是Java集合框架中的一个抽象类,它实现了List接口,并且是 针对顺序访问的列表数据结构的基类 。它提供了一些通用的方法实现,以简化具体实现类的开发。

    2024年01月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包