java8 特性开发(一)

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,这个版本包含语言、编译器、库、工具和JVM等方面的十多个新特性。 下面就来介绍下语言方面的新特性。

List

  1. List转List
public static List<String> long2String(List<Long> list) {
        return list.stream().map(e -> String.valueOf(e)).collect(Collectors.toList());
    }
  1. 获取对象中某一字段集合
方法一:
    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());
    }
  1. 数据去重
方法一:
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());
    }
  1. 数据筛选
 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));
    }

小小拙见能用则!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值