颜值即是正义。所以代码也要好看。

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.GUAVA

2.1 介绍

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。

2.2 学习

https://blog.csdn.net/dgeek/article/details/76221746

3.java8

3.1

 

源代码--》
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
Collections.sort(names, new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return b.compareTo(a);
    }
});

java 8 lambda表达式:
Collections.sort(names,(String a, String b)->{
  return b.compareTo(a);
});

对于函数体只有一行代码的,你可以去掉大括号{}以及return关键字
Collections.sort(names,(String a, String b)->b.compareTo(a));

Java编译器可以自动推导出参数类型,所以可以不用再写一次类型。
终结版
Collections.sort(names,(a,b)->b.compareTo(a));

  

 

 

 

3.2 Optional

意外发现了java8自带的这个类,超好用哎。解释一下使用方法。

3.2.1  Optional.ofNullable()

Optional中的静态方法,最实用的一个方法。根据名字就可以猜出-》这个方法传参可以为空值。

那么当参数为null时,结果为下图

在Optional类中,对于null值有所设定,且不会出现空指针的情况。所以当你传的参数为null时,会打印出Optional.empty。

3.2.2 Optional.empty()

Optional中的静态方法,含义为下图:

3.2.3 Optional.of()

Optional 中的静态方法,这个方法就是参数不能为空的 Optional.ofNullable() ,当参数为空的时候,为抛出空指针异常。

3.2.4 orElse()

此方法不是静态方法,所以通常和 Optional.ofNullable() 一起使用会有很好的体验感

上图表示,当对象a为空时输出"a"。就相当于代码中的 a == nulla:"a"

 

这个类的好处就是避免了参数的空指针问题。