• 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

  • 相关阅读:
    動態PPTP代理IP是什麼?
    nginx 无法 停止
    Android Unable to determine activity name
    理德外汇:日本央行刚刚重挫日元,美联储又有了新底气
    Hadoop高手之路3-Hadoop集群搭建
    容器环境 springcloud gateway grafana prometheus采集集成与问题
    雷军卸任小米有品公司董事,仍持股70%;马斯克决定不加入推特董事会;一加10 Pro内核源代码公布|极客头条
    【翻译】一种减小运动伪影的新方法基于AS-LMS自适应滤波器的PPG信号
    网络安全自学手册
    二叉树跟前缀、中缀、后缀表达式
  • 原文地址:https://blog.csdn.net/weixin_45565886/article/details/127115095