问题一:ListUtils.subtract
结果一:
List<String> list1 = Lists.newArrayList("a","b","c");
List<String> list2 = Lists.newArrayList("a","b","c","d","e");
List<String> subtract = ListUtils.subtract(list2, list1);
List<String> union = ListUtils.union(list1, list2);
输出:
[d, e]
[a, b, c, a, b, c, d, e]
结果二:Immutable
不变集合,用final修饰,并由关键字transient修饰,不可被序列化
问题四:stream. -->校验重复名称
List<Map.Entry<String, Integer>> list = employees.stream()
.map(item -> item.getName())
.collect(toMap(e -> e, e -> 1, Integer::sum))
.entrySet()
.stream()
.filter(e -> e.getValue() > 1)
.collect(Collectors.toList());
问题五:动态
问题六:全局异常处理
@RestControllerAdvice("com.wangc.controller")
public class GlobalExceptionHandler {
@ExceptionHandler
public Result handleThrowable(Throwable e) {
return Result.error().put("msg",e.getMessage());
}
}
问题八:空指针异常!!!!!
避免了空指针异常,用Objects.equals(a,b) 不同类型会返回false
问题九: java8 的 ::
答案九:但是,这种用于比较两个Person
实例的出生日期的方法已经存在Person.compareByAge
。您可以改为在lambda
表达式的主体中调用此方法:
Arrays.sort(rosterAsArray,
(a, b) -> Person.compareByAge(a, b)
);
由于此lambda
表达式会调用现有方法,因此您可以使用方法引用代替lambda
表达式:
Arrays.sort(rosterAsArray, Person::compareByAge);