Guava
Guava
weixin_42868638
这个作者很懒,什么都没留下…
展开
-
Guava Predicate
1. 简介Predicate<泛型>(断言,断定),是Guava中的一个基础接口,其内部只有一个方法boolean apply(T input),这个方法输入是一个泛型对象,输出是一个布尔值,非常简单,下面来看一下这个小东西能帮助我们做什么。2. 使用...转载 2018-09-02 09:11:38 · 150 阅读 · 0 评论 -
multiMap 与 ListMultiMap
转载:https://www.cnblogs.com/txfsheng/p/9510671.html//传统的场景: Map<String,List> map = new HashMap<String,List>();#缺点:向map里面添加元素不太方便,需要这样实现 void putMyObject(String key, Object value) { ...转载 2019-01-04 09:47:10 · 2954 阅读 · 0 评论 -
函数式编程:Functions
先看个例子:上面的代码是为了完成将List集合中的元素,先截取5个长度,然后转成大写。函数式编程的好处在于在集合遍历操作中提供自定义Function的操作,比如transform转换。我们再也不需要一遍遍的遍历集合,显著的简化了代码!在这一章,我们开始注意到使用Guava进行编写代码会更加简单。我们将看看如何使用Guava当中的接口和类可以帮助我们,通过应用行之有效的模式,以使我们的代码更...转载 2018-12-31 10:29:22 · 209 阅读 · 1 评论 -
Guava集合工具 Table接口
功能:简化表格操作,形似Excel的单元格操作;代码:package com.example.google.guava.demo.collection; import com.google.common.collect.HashBasedTable;import com.google.common.collect.Table; import java.util.Colle...转载 2019-01-03 09:48:58 · 824 阅读 · 0 评论 -
Guava新集合-ClassToInstanceMap
有的时候,你的map的key并不是一种类型,他们是很多类型,你想通过映射他们得到这种类型,guava提供了ClassToInstanceMap满足了这个目的。 除了继承自Map接口,ClassToInstaceMap提供了方法 T getInstance(Class ) 和 T putInstance(Class , T),消除了强制类型转换。 该类有一个简单类型的参数,通常称为B,代表了map控...转载 2019-01-03 09:59:28 · 824 阅读 · 0 评论 -
Iterators
Iterators类中有partition(Iterator iterator, int size)和 paddedPartition(Iterator iterator, int size)两个函数,它们都是将iterator中的元素以数量为size分成Iterators.size(iterator) / size + (Iterators.size(iterator) % size == 0 ...转载 2019-01-03 10:54:04 · 466 阅读 · 0 评论 -
ListenableFuture
ListenableFuture顾名思义就是可以监听的Future,它是对java原生Future的扩展增强。我们知道Future表示一个异步计算任务,当任务完成时可以得到计算结果。如果我们希望一旦计算完成就拿到结果展示给用户或者做另外的计算,就必须使用另一个线程不断的查询计算状态。这样做,代码复杂,而且效率低下。使用ListenableFuture Guava帮我们检测Future是否完成了,如...转载 2019-01-31 17:35:55 · 622 阅读 · 0 评论 -
Guava之ListenableFuture(链式回调)
package cn.dubby.listeningfuture;import com.google.common.util.concurrent.*;import java.util.concurrent.Callable;import java.util.concurrent.CountDownLatch;import java.util.concurrent.Executors;...转载 2019-01-31 17:37:11 · 297 阅读 · 0 评论 -
google之guava_事件总线理解与应用
1、EventBus理论基础目标:进程内解耦。总共四部分:1.1、创建事件EventBus类,是guava中消息发布和订阅的类,即订阅者通过EventBus注册并订阅事件,发布者将事件发送至EventBus中,EventBus将事件顺序的通知给时间订阅者,所以,这里有一个特别重要的注意点:事件处理器必须迅速处理完事件,否则可能会导致事件堆积。创建EventBus实例,代码如下:Even...转载 2019-02-01 14:43:16 · 157 阅读 · 0 评论 -
google中guava类库:AsyncEventBus
在spring中通过配置类(支持spring4.x以上及springboot)使AsyncEventBus交给spring容器管理,并设置为单例模式package com.zy.eventbus;import com.google.common.eventbus.AsyncEventBus;import org.springframework.context.annotation.Bean...转载 2019-02-01 14:45:37 · 1010 阅读 · 0 评论 -
map比较器
MapDifference<String, Object> difference = Maps.difference(m1, m2);Map<String, MapDifference.ValueDifference> differenceMap = difference.entriesDiffering();Map<String, Object> comm...转载 2019-06-28 13:54:37 · 762 阅读 · 0 评论 -
Guava新增集合类型-Multiset
转载:https://www.cnblogs.com/peida/p/Guava_Multiset.htmlGuava引进了JDK里没有的,但是非常有用的一些新的集合类型。所有这些新集合类型都能和JDK里的集合平滑集成。Guava集合非常精准地实现了JDK定义的接口。Guava中定义的新集合有: Multiset SortedMultiset Multimap ListMulti...转载 2018-12-29 16:05:16 · 84 阅读 · 0 评论 -
Immutable(不可变)集合
转载:https://www.cnblogs.com/peida/p/Guava_ImmutableCollections.html 不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使...转载 2018-12-29 14:48:01 · 82 阅读 · 0 评论 -
Guava系列2:Predicate与filter
&amp;nbsp; 怎么根据某些条件来过滤Collection的元素?我们可以在循环里面判断元素是否符合条件然后来remove元素。&amp;nbsp; Guava已经作了这样的功能。例如你要在String的list里面有”a”,”b”,...转载 2018-09-02 09:40:19 · 419 阅读 · 0 评论 -
Maps uniqueIndex
Maps.uniqueIndex(Iterable,Function)通常针对的场景是:有一组对象,它们在某个属性上分别有独一无二的值,而我们希望能够按照这个属性值查找对象——译者注:这个方法返回一个Map,键为Function返回的属性值,值为Iterable中相应的元素,因此我们可以反复用这个Map进行查找操作。package collection.collections;impor...转载 2018-09-02 10:16:33 · 12015 阅读 · 0 评论 -
Splitter
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012410733/article/details/51584389 ...转载 2018-09-02 10:29:36 · 318 阅读 · 0 评论 -
利用apache Collections和google guava对list和map进行过滤和排序
在工作中,我们常常需要对List或者Map等集合结果过滤或者排序,这里我通过使用apache commons和google guava中的方法,简单实现了一下,方便以后使用。例子中使用的是 apache commons3.1和google-guava14,最新版本是18apache项目下载地址: http://projects.apache.org/indexes/quick.htmlap...转载 2018-10-10 15:18:57 · 2777 阅读 · 0 评论 -
前置条件
/** * Created by lgq on 16-1-5. */public class TestPreconditions { /** * 前置条件检查,当条件不满足时,就会抛出异常 */ @Test public void testPreconditions(){ String constantName = null;...转载 2018-12-27 09:50:09 · 1410 阅读 · 0 评论 -
ComparisonChain
转载:https://my.oschina.net/realfighter/blog/349824在日常的工作中,我们经常需要对两个对象进行比较,以找出其中的异同, Java中提供了compare/compareTo,我们需要实现一个比较器[Comparator],或者直接实现Comparable接口,不过当 对象的属性很多的时候,我们需要写大量的if else代码,代码不够优雅,Guava为我...转载 2018-12-27 13:56:56 · 148 阅读 · 0 评论 -
Ordering排序工具一
使用Guava的排序工具类, 快速实现对象的单变量排序和多变量排序, 让你的开发效率爆炸...import com.google.common.collect.Lists;import com.google.common.collect.Ordering;import com.google.common.primitives.Ints; import java.util.Collec...转载 2018-12-28 10:02:02 · 529 阅读 · 0 评论 -
Ordering犀利的比较器二
Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。Ordering只是需要依赖于一个比较器(例如,Collections.max)的方法,并使...转载 2018-12-28 10:04:36 · 128 阅读 · 0 评论 -
简化异常处理的Throwables类
转载:https://www.cnblogs.com/peida/p/Guava_Throwables.html有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中。Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。例如:import java.io.IOException;import org.junit.Test;import com...转载 2018-12-28 10:57:56 · 445 阅读 · 0 评论