1、pom.xml文件
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency>
2、不可变List
传统实现:
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); List<String> readList = Collections.unmodifiableList(list);
Guava实现:
List<String> immutableList = ImmutableList.of("a","b","c");
3、函数式编程之过滤器
List<String> list = Lists.newArrayList("moom", "son", "dad", "java", "refer"); //找出回文 Collection<String> palindromeList = Collections2.filter(list, new Predicate<String>() { @Override public boolean apply(String input) { return new StringBuffer(input).reverse().toString().equals(input); } });
4、函数式编程之类型转换
//长整型转换成字符串 HashSet<Long> timeSet = Sets.newHashSet(); timeSet.add(100000000000L); timeSet.add(999999999999999L); timeSet.add(20000000000L); Collection<String> timeStrCol = Collections2.transform(timeSet, new Function<Long, String>() { @Override public String apply(Long input) { return new SimpleDateFormat("yyyy-MM-dd").format(input); } });
5、函数式编程之组合式
List<String> list = Lists.newArrayList("java", "china", "happiness"); //字符串大于5时截断 Function<String, String> f1 = new Function<String, String>() { @Override public String apply(String s) { return s.length() > 5 ? s.substring(0, 5) : s; } }; //字符转换成大写 Function<String, String> f2 = new Function<String, String>() { @Override public String apply(String s) { return s.toUpperCase(); } }; Function<String, String> compose = Functions.compose(f1, f2); Collection<String> transform = Collections2.transform(list, compose);
6、集合操作:交集、差集、并集
Set<String> firstSet = Sets.newHashSet("a", "b", "c", "d"); Set<String> secondSet = Sets.newHashSet("c", "d", "e", "f"); //交集,返回[c,d] Sets.SetView<String> intersection = Sets.intersection(firstSet, secondSet); //差集,返回[a,b] Sets.SetView<String> difference = Sets.difference(firstSet, secondSet); //并集,返回[a,b,c,d,e,f] Sets.SetView<String> union = Sets.union(firstSet, secondSet);
相关推荐
NULL 博文链接:https://isuifengfei.iteye.com/blog/2031770
Guava学习笔记笔记的大部分中文翻译内容来源于以下译者: 沉义扬,罗立树,何一昕,武祖校对:方腾飞感谢给我们带来的这一系列好文章。引言Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合...
自己整理的Guava学习笔记,可能有点简陋,见谅哈!
Guava-Event-Bus 学习笔记 Guava的EventBus源码学习,基于Guava的18.0版本 分析者: ###1. 背景简介 EventBus是google的一个Java工具包其中的一个工具类,类似的有多个版本其中包括移植到Android端的 和改良的,功能...
1 适合初级进阶 2 简单的总结记录 3 涵盖 java8新特性lambda,Stream API,Try-with-resource,Guava,线程池,Loombok,验证框架
Java 的学习笔记和整理的知识点,包含Java语言基础、Java服务端方向的框架、设计模式、计算机网络、算法、Java 虚拟机和数据库等多个方面的内容。想了解前端的内容参考,Android相关的内容参考。 目录结构 语言基础...
heavyz的Tomcat学习笔记(包括启动流程分析、启动脚本分析) ] () [ java8 新特性讲解系列文章 ] () [ Java 从Jar文件中动态加载类 ] () [ Java并发源码分析 - ThreadPoolExecutor ] () [ java ClassLoader 基本原理 ]...
一个学习SpringBoot&SpringCloud的工作场所 开始 git clone 使用Maven构建项目, main程序在com.xiaoping.App.java 注: 杰克1.8 + Maven 3.5 + 建立 mvn包 jar包输出在/target目录下 历史 升级netty-> 4.1.43 ...
java的测试项目,可以看做是java的ApiDemo,主要用于学习,也经常用来测试极光,七牛等服务器api, 实际上有什么好代码都可以加进来,直到这个工程不堪其重 目录: 目录 [java高级] [Ayo库] 集合 ConcurrentMap原理...
笔记 Java 语言相关的API,第三方库和计算机基础理论等知识的学习和整理 更多 : | | 目录 资源 详细目录 Java语言和JDK源码 Java语言的基础理论知识 并发编程 Java并发编程相关的内容,并发包源码分析等 集合框架 ...