Google Guava 笔记

Guava 工程包含了若干被 Google 的 Java 项目广泛依赖的核心库,例如:集合 collections、缓存 caching、原生的类型支持 primitives support、并发库 concurrency libraries、通用注释 common annotations、字符串处理 string processing、I/O 等等。

Google Collections 集合类

List
// 创建一个不可变的 list
ImmutableList<String> list = ImmutableList.of("a", "b", "c", "d");

// 按指定长度拆分成 N 个 list
List<List<T>> partitions = Lists.partition(list, n);
Maps

Maps.uniqueIndex(Iterable, Function) 通常针对的场景是:是一组对象,它们在某个属性上分别有独一无二的值,而我们希望能够按照这个属性值查找对象

Map<Integer, String> stringsByIndex = Maps.uniqueIndex(strings, new Function<String, Integer>() {  
    public Integer apply(String string) {
        return string.length();
    }
})

// Java 8 Lambda 写法
Maps.uniqueIndex(strings, s -> string.length())  
Multimap

Multimap 可以非常优雅的实现 Map<K, Collection<V>> 的数据类型

// 按 KEY 分组
ImmutableListMultimap<K, V> groupMap = Multimaps.index(list, a -> a.getKey());

// 使用代码创建数据
Multimap<String, String> multimap = ArrayListMultimap.create();  
multimap.put("Fruits", "Bannana");  
multimap.put("Fruits", "Apple");  
multimap.put("Fruits", "Pear");  
multimap.put("Vegetables", "Carrot");  

// value 是数组
ListMutlimap<String,String> listMutlimap = ArrayListMultimap.create();  

ohfree9

继续阅读此作者的更多文章