java8 的stream 测试练习

public static void main(String[] args) {
    List<UserModel> list=new ArrayList<UserModel>();
    UserModel userModel=new UserModel(1,"张三",new Date(System.currentTimeMillis()),"1110",1);
    UserModel userModel1=new UserModel(2,"李四",new Date(System.currentTimeMillis()),"1111",2);
    UserModel userModel2=new UserModel(3,"王五",new Date(System.currentTimeMillis()),"1112",2);
    UserModel userModel3=new UserModel(4,"小岛",new Date(System.currentTimeMillis()),"1113",2);
    list.add(userModel);
    list.add(userModel1);
    list.add(userModel2);
    list.add(userModel3);

    //通过list获取一个Int为key,List<object>为value 的map
    //Map<Integer,List<TmsTransportPlanItem>>
    Map<Integer, List<UserModel>> oneMap = list.stream().collect(Collectors.groupingBy(UserModel::getId));
    List<UserModel> models1 = oneMap.get(1);


    //list中获取id的list列表
    //List<Integer> cityIds
    //id返回list集合
    List<Integer> idList = list.stream().map(UserModel::getId).collect(Collectors.toList());
    //sex返回集合
    List<Integer> sexList = list.stream().map(UserModel::getSex).distinct().collect(Collectors.toList());
    //姓名list
    List<String> nameList = list.stream().map(UserModel::getName).collect(Collectors.toList());


    //获取list中不同的id字段。返回一个list<Integer>属性、
    List<Integer> newIdList = list.stream().map(UserModel::getId).collect(Collectors.toList());


    //根据条件从list中获取一个值,如果没有就直接返回null
    //TmsLogisticsOrder exit
    UserModel singleModel = list.stream().filter(item -> item.getSex() == 1).findAny().orElse(null);


    //获取list中的一个对象的字段返回set
    //Set<String> transOrderCodeSet
    Set<String> nameSet = list.stream().map(UserModel::getName).collect(Collectors.toSet());


    //把list<Ojbect>转成map<int,object>
    //Map<Integer, TmsTransportOrder> transOrderMap
    Map<Integer, UserModel> modelMap = list.stream().collect(Collectors.toMap(UserModel::getId, item -> item));


    //根据条件查找list中对应的值,返回一个list中的一个对象
    //TmsLogisticsOrderItem exitItem
    UserModel model = list.stream().filter(item -> "张三".equals(item.getName())).findAny().orElse(null);
    System.out.println(model);


    //获取list<object>中的一个字段,转换成int数组
    //Integer[] orderItemIds
    Integer[] arrayIds = list.stream().map(UserModel::getId).distinct().toArray(Integer[]::new);
    System.out.println(arrayIds);


    //获取map<int,List<object>>这样的集合。通过list<ojbect>来进行
    //Map<Integer,List<TmsLogisticsOrderItem>> logisticsOrderItemMap
    Map<Integer, List<UserModel>> listMap = list.stream().collect(Collectors.groupingBy(UserModel::getId));
    System.out.println(listMap);


    //获取int数组。通过list<object>
    //Integer[] orderIds
    Integer[] array = list.stream().map(UserModel::getId).distinct().toArray(Integer[]::new);
    System.out.println(array);


    //根据条件获取list<object>中的一个值,只要找到任何一个就可以。如果没有那么返回null
    //msLogisticsOrder exit
    List<UserModel> models = list.stream().filter(item -> item.getName().equals("李四")).collect(Collectors.toList());
    System.out.println(models);


    //通过list<object>获取set集合
    //Set<Integer> warehouseIdWithPermissionSet
    Set<Integer> integers = list.stream().map(UserModel::getId).distinct().collect(Collectors.toSet());


    //通过单个字符串转换成list进行查询
    String str = Collections.singletonList("张三").stream().filter(item -> item.equals("张三")).findFirst().get();
    System.out.println(str);


    //通过字符串(用逗号隔开的那种)返回一个list
    List<String> strings = Arrays.stream(("1,2,3,4,5,6,7,8,9").split(",")).collect(Collectors.toList());
    System.out.println(strings);


    //获取Map<Iint,Ojbect> 通过list<object>
    Map<Integer, UserModel> map = list.stream().collect(Collectors.toMap(UserModel::getId, item -> item));
    System.out.println(map);


    //获取Map<int,Ojbect> 通过list 但是要注意值的int转换
    //Map<Integer, AllocateDictionaryDTO> appStatusMap
    Map<Integer, UserModel> collectMap = list.stream().collect(Collectors.toMap(item -> Integer.parseInt(item.getStudentNo()), item -> item));


    System.out.println("");


}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值