Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,这个版本包含语言、编译器、库、工具和JVM等方面的十多个新特性。 下面就来介绍下语言方面的新特性。
List
- List转List
public static List<String> long2String(List<Long> list) {
return list.stream().map(e -> String.valueOf(e)).collect(Collectors.toList());
}
- 获取对象中某一字段集合
方法一:
public static List<String> getNameList(List<User> userList) {
if (CollectionUtils.isEmpty(userList)) {
return Lists.newArrayList();
}
return userList.stream().map(e -> e.getName()).collect(Collectors.toList());
}
方法二:
public static List<String> getNameList(List<User> userList) {
if (CollectionUtils.isEmpty(userList)) {
return Lists.newArrayList();
}
return userList.stream().map(User::getName).collect(Collectors.toList());
}
方法三:(数据拼接)
public static List<String> getList(List<User> userList) {
return userList.stream().map(e-> StringUtils.join(e.getName(), ",", e.getUserId())).collect(Collectors.toList());
}
方法四:加非空筛选
public static List<String> getList(List<User> userList) {
if (CollectionUtils.isEmpty(userList)) {
return Lists.newArrayList();
}
return userList.stream().map(User::getName).filter(item -> StringUtils.isNotBlank(item)).collect(Collectors.toList());
}
- 数据去重
方法一:
public static List<User> distinctByName(List<User> userList) {
List<User> distinctList =
userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getName))), ArrayList::new));
return distinctList ;
}
方法二:
public static List<String> distinct2StrByName(List<User> userList) {
userList.stream().distinct().collect(Collectors.toList()).forEach(System.out::println); //去重输出
return userList.stream().map(e -> e.getName()).distinct().collect(Collectors.toList());
}
- 数据筛选
public static List<User> removeByName(List<String> nameList, List<User> userList) {
List<User> diffList = payableBillList.stream().filter(item -> !nameList.contains(item.getName())).collect(Collectors.toList());
return diffList;
}
5.获取集合最大值
public static String getMaxAge(List<User> userList) {
PayableBill maxUser = userList.stream().max(Comparator.comparing(User::getAge)).get();
return maxUser .gerAge();
}
6、
/**
筛选重复数据*/
public static List<String> getNames(List<User> userList) {
//计数
Map<String, Long> collect = userList.stream().collect(Collectors.groupingBy(User::getName, Collectors.counting()));
//筛出有重复数据
List<String> list= collect.keySet().stream().filter(key -> collect.get(key) > 1).collect(Collectors.toList());
return list;
}
/**
筛选重复数据*/
public static List<String> getNames(List<TransFlow> bankTransDetail) {
//计数
Map<String, Long> collect = bankTransDetail.stream().collect(Collectors.groupingBy(TransFlow::getName, Collectors.counting()));
//筛出有重复数据
return collect.keySet().stream().filter(key -> collect.get(key) > 1).collect(Collectors.toList());
}
Map
根据字段分组
public static Map<String, List<User>> groupByCheckBatchNo(List<User> userList) {
return userList.stream().filter(e -> StringUtils.isNotBlank(e.getName())).collect(Collectors.groupingBy(user-> user.getName()));
}
list 转map
public static Map<String, String> mdmCompany2Map(List<User> userList) {
if (CollectionUtils.isEmpty(userList)) {
return Maps.newHashMap();
}
return userList.stream().collect(Collectors.toMap(item -> item.getName(), item -> item.getAge(), (k1, k2) -> k1));
}
小小拙见能用则!!!!!!!