记录流的一些基本使用
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());