摘要
本文总结了JDK 1.8中新特性的使用技巧
本文总结了JDK 1.8中新特性的使用技巧
Joiner.on(",").join(list)
String.join(",",list);
此方法要求接收对象和原对象类型一致
list.stream().map(String::valueOf).collect(Collectors.joining(","));
假设有一个List<UserInfo>对象,想要根据id作为key转换为Map
List<UserInfo> list = new ArrayList<>(); Map<Integer,UserInfo> map = list.stream().collect(Collectors.toMap(e -> e.getId(), e -> e, (v1, v2) -> v1))
String str = "1,23,23,11,6"; List<Integer> listIds = Lists.newArrayList(str.split(",")).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toList());
Map<String,List<UserInfo>> map = list.stream().collect(Collectors.groupingBy(UserInfo::getSex);
假设Employee包含age属性。
int sum = empList.stream().mapToInt(Employee->Employee.getAge()).sum(); int max = empList.stream().mapToInt(Employee->Employee.getAge()).max().getAsInt(); int min = empList.stream().mapToInt(Employee->Employee.getAge()).min().getAsInt(); double avg = empList.stream().mapToInt(Employee->Employee.getAge()).average().getAsDouble();
list.sort(Comparator.comparing(User::getName, Comparator.nullsLast(String::compareTo)));
上述方法中为正序排序,且如果属性为null,则放到最后
如果要降序排序,使用如下格式
list.sort(Comparator.comparing(User::getName, Comparator.nullsLast(String::compareTo)).reversed());
如果想要属性为null时,放置在前面,则
list.sort(Comparator.comparing(User::getName, Comparator.nullsFirst(String::compareTo)));
Comparator<User> byDisplacement = Comparator.comparing(User::getDisplacement, Comparator.nullsLast(String::compareTo)); //.reversed(); 降序 Comparator<User> byHorsepower = Comparator.comparing(User::getHorsepower, Comparator.nullsLast(String::compareTo)); Comparator<User> byAirIntake = Comparator.comparing(User::getAirIntake, Comparator.nullsLast(String::compareTo)); Comparator<User> finalComparator = byDisplacement.thenComparing(byHorsepower) .thenComparing(byAirIntake); List<User> sortResult = list.stream().sorted(finalComparator).collect(Collectors.toList());
此语句表示上面三个字段同时参与排序
List<List<Integer>> partition = ListUtils.partition(integers, 100);