zoukankan      html  css  js  c++  java
  • 使用Guava提供的filter过滤集合

     正常情况下,我们声明一个List需要如下代码

    List<String> list = new ArrayList<>();
    list.add("AAA");
    list.add("BBB");
    list.add("CCC");

    使用Google Guava提供的Lists类声明就方便很多,代码如下

    package com.google.common.collect; //导入jar包
    List<String> list = Lists.newArrayList("AAA", "BBB", "CCC");
    

    在实际开发中,我们经常遇到需要处理集合中对象的情况,比如返回一个集合中User类的Age大于18的用户列表

    package com.rrq.guava;
    
    import com.google.common.collect.Collections2;
    import com.google.common.collect.Lists;
    
    import java.util.Collection;
    import java.util.List;
    
    public class Demo02 {
        public static void main(String[] args) {
    
            //获取用户集合
            List<User> list = GetUserList();
    
            //使用filter方法过滤条件是Age大于18的数据
            Collection<User> result = Collections2.filter(list, x -> x.getAge() > 18);
    
            for (User item : result) {
                System.out.println(String.format("%s=%d", item.getName(), item.getAge()));
            }
        }
    
        //初始化用户列表
        public static List<User> GetUserList() {
    
            User user1 = new User();
            user1.setName("brazel");
            user1.setAge(18);
    
            User user2 = new User();
            user2.setName("AAA");
            user2.setAge(11);
    
            User user3 = new User();
            user3.setName("BBB");
            user3.setAge(20);
    
            User user4 = new User();
            user4.setName("CCC");
            user4.setAge(22);
    
            List<User> list = Lists.newArrayList();
            list.add(user1);
            list.add(user2);
            list.add(user3);
            list.add(user4);
    
            return list;
        }
    }
    
    
    class User {
        private String Name;
    
        private int Age;
    
        /***
         * 获取用户名
         *
         * @return
         */
        public String getName() {
            return Name;
        }
    
        /***
         * 设置用户名
         *
         * @return
         */
        public void setName(String name) {
            Name = name;
        }
    
        /***
         * 获取年龄
         ****/
        public int getAge() {
            return Age;
        }
    
        /**
         * 设置年龄
         **/
        public void setAge(int age) {
            Age = age;
        }
    }

    输出结果:

    BBB=20
    CCC=22

  • 相关阅读:
    tomcat启动问题
    索引优化
    itext转PDF(二)
    itext转pdf(一)
    定时器quartz配置文件
    hibernate自动去别名问题
    win10安装mysql 8.0.19 (解压方式)
    把数据按列拆分为数据表
    程序记时
    find的应用
  • 原文地址:https://www.cnblogs.com/zhuiyi/p/5477801.html
Copyright © 2011-2022 走看看