Stream流的去重、切割、差集的一些使用方式

记录流的一些基本使用

1.从对象中拿出一列数据组成List对象

//去重
List<String> bookNameList = 
    BookList.stream().map(Book::getBookName).distinct().collect(Collectors.toList());

2.两个List对象求差集

List<Region> resultRegionIds =
        regionIds.stream().filter(item -> !removeIds.contains(item))
        .collect(Collectors.toList());

3.切割字符串组装成List<String>

//不使用流的方式
String bookName = "活着,流浪地球,简爱";
String[] bookNameArray = bookName.split(",");
ArrayList<String> bookNameList = new ArrayList<>(bookNameArray.length);
Collections.addAll(bookNameList, bookNameArray);

//使用流的方式
String bookName = "活着,流浪地球,简爱";
List<String> bookNameList = 
	Stream.of(bookName.split(",")).collect(Collectors.toList());

4.切割字符串组装成List<Interger>

//不使用流的方式
String bookNum = "1001,2001,4221,5222,61114";
String[] bookStrNumArray = bookNum.split(",");
Integer[] bookNumArray =(Integer[])ConvertUtils.convert(bookNumArray, Integer.class);
ArrayList<Integer> bookNumList = new ArrayList<>(bookNumArray.length);
Collections.addAll(bookNumList, bookNumArray);

//使用流的方式
String bookNum = "1001,2001,4221,5222,61114";
List<Integer> statusList = Stream.of(bookNum.split(",")).map(Integer::valueOf)
	.collect(Collectors.toList());

5.从一个对象取出部分字段放入另一个对象中

List<FeedbackList> pageList = feedbacks.stream().map(item ->{
      FeedbackList feedbackList = new FeedbackList();
      feedbackList.setId(item.getId());
      feedbackList.setType(item.getFeedbackType());
      feedbackList.setContent(item.getFeedbackDesc());
      feedbackList.setImageInfos(
              JsonUtils.stringToObjs(item.getPictureUrls(), new TypeReference<>() {}));
      feedbackList.setSourceUrl(item.getFeedbackUrl());
      return feedbackList;
    }).distinct().collect(Collectors.toList());

根据日期进行升序排序

 List<Student> studentsSortAsce = studentList.stream().sorted(Comparator.comparing(Student::getCreateTime)).collect(Collectors.toList());

根据日期进行降序排序

List<Student> studentsSortDesc = studentList.stream().sorted(Comparator.comparing(Student::getCreateTime).reversed()).collect(Collectors.toList());
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值