使用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() > ); 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(); User user2 = new User();
user2.setName("AAA");
user2.setAge(); User user3 = new User();
user3.setName("BBB");
user3.setAge(); User user4 = new User();
user4.setName("CCC");
user4.setAge(); 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
使用Guava提供的filter过滤集合的更多相关文章
- java8的stream系列教程之filter过滤集合的一些属性
贴代码 List<Student> lists = new ArrayList<>(); Student student = new Student(); student.se ...
- 使用filter方法过滤集合元素
文章转自https://my.oschina.net/nenusoul/blog/658238 Problem 你想要筛选出集合中的一些元素形成一个新的集合,这些元素都是满足你的筛选条件的. Solu ...
- laravel的filter()方法的使用 (方法使用给定的回调函数过滤集合的内容,只留下那些通过给定真实测试的内容)
filter 方法使用给定的回调函数过滤集合的内容,只留下那些通过给定真实测试的内容: $collection = collect([1, 2, 3, 4]); $filtered = $collec ...
- Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
内容简介 本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合. List对象类(StudentInfo) public clas ...
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...
- java代码之美(4)---guava之Immutable(不可变)集合
Immutable(不可变)集合 一.概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开.Collections是jdk提供的一个工具类 ...
- java代码(4)---guava之Immutable(不可变)集合
Immutable(不可变)集合 一,概述 guava是google的一个库,弥补了java语音的很多方面的不足,很多在java8中已有实现,暂时不展开,Collections是jdk提供的一个工 ...
- 使用Java Stream,提取集合中的某一列/按条件过滤集合/求和/最大值/最小值/平均值
不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.ut ...
- Android利用Filter过滤数据
MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; imp ...
随机推荐
- mac 10.11.6,Xcode8下,ruby2.3安装,Cocoapods安装~
适用环境 mac: 10.11.6 Xcode:8.1 命令执行步骤(安装ruby2.3前准备工作) 查看ruby更新源 gem sources -L 删除默认官方或者淘宝,新增 https://g ...
- mysql用户的创建
MySQL是采用c/s方式的,需要客户端登录服务器,那么可以登录账号叫做用户,这些用户的信息都存储在mysql数据库(mysql安装时默认有的一个数据库)中的user表中, 比如用户的名称,用户的密码 ...
- 判断Window在哪个屏幕
最近在做窗口最大化时需要一个功能,如果是多个显示器的话,需要在当前显示器最大化,由于是根据屏幕长宽进行设置Window大小,没有使用WindowState.Maximized,window.Left不 ...
- 老版mapreduce跑streaming作业多路输出的方法
1. 继承MultipleTextOutputFormat实现自己的输出类. 2. 重写generateFileNameForKeyValue方法,返回输出的名字,可通过"/"分割 ...
- spfa判断负环
会了spfa这么长时间竟然不会判断负环,今天刚回.. [例题]poj3259 题目大意:当农场主 John 在开垦他的农场时,他发现了许多奇怪的昆虫洞.这些昆虫洞是单向的,并且可以把你从入口送到出口, ...
- ngixn编译安装时,pcre的处理
nginx编译时pcre会提示找不到libpcre.so.1 ./configure --hlep --without-pcre disable PCRE library usage 不使用pcr ...
- Spring 学习笔记 2. 尚硅谷_佟刚_Spring_IOC&DI概述
1,远古时代 这里讲述的IOC的演变历史,举一个例子,假如需要生成HTML和PDF格式的报表,以前的开发方式就是有个报表服务类需要使用报表生成器 它需要和其他三个都关联,它既需要知道接口类型,也需要知 ...
- .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
前言 一直以来,从事的是.net winform的编程,虽然对移动互联这块很感兴趣,但是由于现有的工作和移动互联之间隔的太远,也就没有时间和精力好好的去研究和实现.今年年初辞职了,刚好朋友那里希望建立 ...
- 基于SpringMVC的增删改查
废话不多说,直接开始步骤! 1.创建一个Dynamic Web Project 2.在WEB-INF包下的lib文件夹中引入相关jar commons-logging-.jar jstl.jar sp ...
- (转)Linux服务器调优
Linux内核参数 http://space.itpub.net/17283404/viewspace-694350 net.ipv4.tcp_syncookies = 1 表示开启SYN Cooki ...