Goole框架 — — Guava用法

发布于:2022-12-04 ⋅ 阅读:(619) ⋅ 点赞:(0)

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 后查看