Lists、Sets、Maps和Collections2的使用
1、Lists
- //Lists
- System.out.println("### Lists ###");
- ArrayList<String> arrayList = Lists.newArrayList();
- arrayList.add("A");
- arrayList.add("B");
- arrayList.add("C");
- System.out.println(arrayList);
- LinkedList<String> linkedList = Lists.newLinkedList();
- linkedList.add("A");
- linkedList.add("B");
- linkedList.add("C");
- System.out.println(linkedList);
- System.out.println(Lists.reverse(arrayList)); //翻转集合元素的顺序
- System.out.println(Lists.reverse(linkedList));
- System.out.println(Lists.partition(arrayList, 2)); //一个集合内再分成n个子集合
2、Sets
- //Sets
- System.out.println("### Sets ###");
- HashSet<String> set1 = Sets.newHashSet();
- set1.add("A");
- set1.add("B");
- set1.add("C");
- LinkedHashSet<String> set2 = Sets.newLinkedHashSet();
- set2.add("B");
- set2.add("C");
- set2.add("D");
- set2.add("E");
- //Sets.newTreeSet();
- //Sets.newConcurrentHashSet();
- System.out.println(Sets.union(set1, set2)); //返回两个集合的并集 >> [A, B, C, D, E]
- System.out.println(Sets.difference(set1, set2)); //返回set1中不存在于set2的元素集合 >> [A]
- System.out.println(Sets.intersection(set1, set2)); //返回两个集合的交集 >> [B, C]
- Set<String> resultSet = Sets.filter(set2, new Predicate<String>() {
- @Override
- public boolean apply(String value) {
- return !"D".equals(value); //过滤掉值为D的元素 >> [B, C, E]
- }
- });
- System.out.println(resultSet);
3、Maps
- //Maps
- System.out.println("### Maps ###");
- Maps.newHashMap();
- Maps.newLinkedHashMap();
- Maps.newTreeMap();
- Maps.newConcurrentMap();
4、Collections2
- //Collections2
- System.out.println("### Collections2 ###");
- Collection<String> linkedList2 = Collections2.filter(linkedList, new Predicate<String>() {
- @Override
- public boolean apply(String value) {
- return !"B".equals(value); //过滤器:过滤掉值为B的元素 >> [A, C]
- }
- });
- System.out.println(linkedList2);
- Collection<String> linkedList3 = Collections2.transform(linkedList, new Function<String, String>() {
- @Override
- public String apply(String value) {
- return value + "_"; //转换器:元素值做特殊处理后返回 >> [A_, B_, C_]
- }
- });
- System.out.println(linkedList3);
Lists、Sets、Maps和Collections2的使用的更多相关文章
- java代码之美(9)---guava之Lists、Maps
guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升. 1.概述 1.静态工厂方法 (1)Guava提供了能够推断范型的静态 ...
- java代码(9) ---guava之Lists、Maps
guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升 一.概述 1.静态工厂方法 (1)Guava提供了能够推断泛型的静态 ...
- 005-guava 集合-集合工具类-java.util.Collections中未包含的集合工具[Maps,Lists,Sets],Iterables、Multisets、Multimaps、Tables
一.概述 工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和java.util.Col ...
- java成神之——集合框架之ArrayList,Lists,Sets
集合 集合种类 ArrayList 声明 增删改查元素 遍历几种方式 空集合 子集合 不可变集合 LinkedList Lists 排序 类型转换 取交集 移动元素 删除交集元素 Sets 集合特点 ...
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- Chapter 7 -- Functional
Caveats 说明 As of Java 7, functional programming in Java can only be approximated through awkward and ...
- [Java Basics] Collection
除了Java collection class/interface外,方便的有Google guava的utility class: Lists/Sets/Maps/Queues, 用它们可以方便地创 ...
- Thymeleaf模板的使用
使用模板的要点: 页面主体结构固定,具体参数可变,尽可能让参数动态化,才能提高模板的复用性 ================================================== ...
- Guava学习笔记:EventBus(转)
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现.对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和 ...
随机推荐
- BZOJ1412 ZJOI2009 狼和羊的故事 【网络流-最小割】
BZOJ1412 ZJOI2009 狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和 ...
- Maven系列(二)之安装和配置详解
检查JDK环境 在安装Maven之前,首先要确认你已经正确安装了JDK.Maven可以运行在JDK 1.4及以上的版本上. 打开cmd输入: java -version 下载Maven Maven官网 ...
- jquery ajax 超时设置
自:jquery ajax超时设置 var ajaxTimeoutTest = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 typ ...
- fpga配置过程(转载)
fpga 配置时序图如下 1.FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式. AS 由FPGA器件引导配置操作过程, ...
- python模块--hashlib
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 import hashlib m = hashlib.m ...
- ballerina 学习四 如何进行项目结构规划
备注: * ballerina 程序员可以将代码放到一个文件或者一个项目目录 * 一个ballerina program是一个已经编译以及链接的二进制文件 * package是一个包含ba ...
- Nchan nginx 支持的开源消息推送模块
1. 介绍 // 官方说明 Nchan is a scalable, flexible pub/sub server for the modern web, built as a module for ...
- 随着tomcat一起启动一个线程
package test; import javax.servlet.*; public class MyCode implements ServletContextListener { //当Tom ...
- 性能指标术语&理发店模型
2015-11-26 09:13:53 响应时间 响应时间=呈现时间+系统响应时间 呈现时间取决于数据在被客户端收后到呈现出页面所消耗的时间: 系统响应时间指应用系统从请求发出开始到客户端接收到数据所 ...
- C# winform中自定义用户控件 然后在页面中调用用户控件的事件
下面是用户控件的代码: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...