Goole框架 — — Guava用法
1 简介
在日常开发中,我们难免会使用到很多的集合来处理我们的业务数据,但是Java自身提供的一些集合框架用起来有时候太过繁重。这里给大家推荐一款,我们企业常用的集合框架Guava。
Guava是一种基于开源的Java库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,
支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。
"Guava的好处":
1.标准化 - Guava库是由谷歌托管。
2.高效 - 可靠,快速和有效的扩展JAVA标准库
3.优化 -Guava库经过高度的优化。
>函数式编程 -增加JAVA功能和处理能力。
>实用程序 - 提供了经常需要在应用程序开发的许多实用程序类。
>验证 -提供标准的故障安全验证机制。
>最佳实践 - 强调最佳的做法。
2 Guava的常用功能
2.1 初始化集合(list等)
//一、初始化集合
List<String> list = Lists.newArrayList("a", "b", "c", "d");
System.out.println(list);//[a, b, c, d]
2.2 读取文件
//二、读取文件
// System.out.println(System.getProperty("user.dir"));//D:\javafiles\java\project\test_ngari
File file = new File("demo/src/main/java/com/example/demo/demo01.txt");
try {
List<String> strings = Files.readLines(file, Charsets.UTF_8);
for(String str : strings){
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
}
2.3 统计元素出现次数
//三、统计某个对象在集合中存在的次数
HashMultiset<String> multiset = HashMultiset.create();
multiset.add("a");
multiset.add("a");
multiset.add("b", 5);//add “b” 5 times 添加5个b
System.out.println(multiset.elementSet());//[a, b]
System.out.println(multiset.count("a"));//2
System.out.println(multiset.count("b"));//5
System.out.println(multiset.count("c"));//0
2.4 map的value对应一个集合
//四、map的value对应的是一个集合
Multimap<String, Integer> multimap = ArrayListMultimap.create();
multimap.put("a", 1);
multimap.put("a", 2);
multimap.put("a", 4);
multimap.put("b", 3);
multimap.put("c", 5);
System.out.println(multimap.keys());//[a x 3, b, c]
System.out.println(multimap.get("a"));//[1, 2, 4]
System.out.println(multimap.get("b"));//[3]
System.out.println(multimap.get("d"));//[]
System.out.println(multimap.asMap());//{a=[1, 2, 4], b=[3], c=[5]}
2.5 静态方法,类型推断,创建不同集合
类型推断,在java7之后才支持
//五、静态方法,泛型推断[也可以创建LinkedList等]
List<Integer> list1 = Lists.newArrayList();
//可以创建很多不同的map[也可以创建TreeMap等]
Map<Integer, String> map = Maps.newLinkedHashMap();
2.6 工厂方法创建集合
//六、支持工厂方法创建集合
Set<String> set = Sets.newHashSet("2", "4", "5");
List<String> list2 = Lists.newArrayList("afa", "bca","dty");
2.7 Primitives:操作java八大基本数据类型
//七、Primitives:主要是与java的八大基础类型对应
System.out.println(Ints.asList(1,2,3));//[1, 2, 3]
System.out.println(Ints.compare(1,2));//-1(表明1比2小)
System.out.println(Ints.join("-", 1,2,3));//1-2-3
System.out.println(Ints.max(1,3,5));//5
System.out.println(Ints.tryParse("456"));//456
2.8 Hash算法
//八、Hashing,编写一个Hash散列算法
public static String md5(String str){
return Hashing.md5().newHasher()
.putString(str, Charsets.UTF_8)
.hash()
.toString();
}
//main方法中调用结果
//System.out.println(md5("fas"));//c5341e883d09ced169abfac23dc13abc
参考文章:https://zhuanlan.zhihu.com/p/20637960
本文含有隐藏内容,请 开通VIP 后查看