使用Guava提供的filter过滤集合

简介: 正常情况下,我们声明一个List需要如下代码 List list = new ArrayList(); list.add("AAA"); list.add("BBB"); list.add("CCC"); 使用Google Guava提供的Lists类声明就方便很多,代码如下 package com.

 正常情况下,我们声明一个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

 

目录
相关文章
|
7月前
lambda中使用filter过滤
lambda中使用filter过滤
数组双重去重的方式三filter
数组双重去重的方式三filter
58 0
ES6系列笔记-数组方法filter(过滤)
ES6系列笔记-数组方法filter(过滤)
78 1
|
7月前
|
Java
JDK8 Stream之如何给List属性去重?
JDK8 Stream之如何给List属性去重?
567 0
|
Java
【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
353 0
|
Java
java8 List根据对象中属性去重-多属性去重-去除重复字符串
java8 List根据对象中属性去重-多属性去重-去除重复字符串
1135 0
如何对数组进行一个过滤操作map
如何对数组进行一个过滤操作map
86 0
|
数据采集 Python
如何使用reduce(),filter()对数据进行求积,去除None,空字符串
如何使用reduce(),filter()对数据进行求积,去除None,空字符串
|
API 开发者 索引
过滤 filter|学习笔记
快速学习过滤 filter。
过滤 filter|学习笔记