• Goole框架 — — Guava用法


    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

  • 相关阅读:
    lambda 的组成部分 operator==类体和全局中的细微区别 哈希容器代码 自定义哈希函数
    河南省工业互联网大赛(复赛) wp
    我用什么笔记软件?
    React基础语法
    【Netty 从成神到升仙系列 三】Netty 凭什么成为国内最流行的网络通信框架?
    Android实战项目(初级向) - 趣味数学 -下
    第六节——Vue中的事件
    支付、结算、对账流程
    python3 多进程讲解 multiprocessing
    柠檬班unitest
  • 原文地址:https://blog.csdn.net/weixin_45565886/article/details/127115095