zoukankan      html  css  js  c++  java
  • Google的java工具类Guava

    前言

    google开发java项目肯定也不想重复造轮子,所以肯定也有工具类,就是它了:Guava
    我将举例几个实际的例子,发挥这个工具类好用的功能。更多的方法和功能,还有内部的实现可以直接参考https://github.com/google/guava

    举例

    ps:这边都以单个情况举例,如以map举例,那么List等都有类似的功能。

    1、创建
    原来你可能是这样的:

    Map<String, Map<Long, List<String>>> map = new HashMap<String, Map<Long,List<String>>>();

    现在你可以:

     Map<String, Map<Long, List<String>>> map = Maps.newHashMap(); 
    

    2、初始化
    原来你可能是这样的:

    Map<String,String> map = new HashMap<>();
            map.put("key1", "val1");
            map.put("key2", "val2");

    现在你可以:

    Map<String,String> map = ImmutableMap.of("key1", "val1", "key2", "val2");

    当然绝大多数情况下,这样的用法用于list较多,map这样的写法,可读性有点差,也多用于测试用例中。

    3、比较
    原来你可能是这样的:

    int a = 1;
    int b = 2;
    int compareTo = Integer.valueOf(a).compareTo(Integer.valueOf(b));

    现在你可以:

    int compare = Ints.compare(a, b);

    其他有Ints,Doubles,Floats,Shorts,Bytes以及Bools等工具类用于操作基本类型的数据很方便

    4、list转String

    List<Integer> list = listOf(1, 2, 3);
    int[] arr = Ints.toArray(list);

    5、字符比较分离

    //判断字符a~z
    CharMatcher charMatcher = CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('A', 'Z'));
    boolean result = charMatcher.matches('a');
    System.out.println(result);
    
    //分离字符串并处理空格和空的情况
    Iterable<String> split = Splitter.on(",")
            .omitEmptyStrings()
            .trimResults()
            .split("1,,,2, 3,    ,5");
    
    for (String temp : split) {
        System.out.println(temp);
    }
    //转小驼峰
    tableName = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, tableName);

    6、一键多值的map

    Multimap<String, String> multimap = ArrayListMultimap.create();
    multimap.put("123", "123");
    multimap.put("123", "124");
    System.out.println(multimap.get("123"));
    //[123, 124]

    其他很多奇奇怪怪的功能在下面都有,上面只是抛砖引玉。

    参考文档博客:
    https://www.cnblogs.com/SummerinShire/p/6054983.html
    https://blog.csdn.net/dgeek/article/details/76221746
    http://ifeve.com/google-guava-collectionutilities/

  • 相关阅读:
    aarch64_p1
    aarch64_o2
    aarch64_o1
    aarch64_n3
    aarch64_n2
    aarch64_n1
    aarch64_m3
    aarch64_m2
    aarch64_m1
    aarch64_l3
  • 原文地址:https://www.cnblogs.com/linkstar/p/8863793.html
Copyright © 2011-2022 走看看