1、排序处理
// 正序 Comparator比较器默认是正序
List<Ticket> list = tickets.stream().sorted(Comparator.comparing(Ticket::getPlanTime)).collect(Collectors.toList());
// 倒序 reversed()倒序方法
List<Ticket> list = tickets.stream().sorted(Comparator.comparing(Ticket::getPlanTime).reversed()).collect(Collectors.toList());
2、从对象集合中获取属性集合
List<String> userIds = list.stream()
.map(OntologyMappingTask::getCreatedBy)
.distinct()
.map(String::valueOf).collect(Collectors.toList());
3、通过属性对集合分组
// 单属性分组处理
Map<String, List<BusinessModelAttribute>> listMap = attrList.stream()
.collect(Collectors.groupingBy(BusinessModelAttribute::getModelId));
// 多属性的分组处理
Map<String, List<Map<String, Object>>> glist = counts.stream().collect(Collectors.groupingBy(e -> e.get("card_id").toString()+"#"+e.get("channel_id").toString()+"#"+e.get("store_id")));
4、集合中找出重复的属性值
List<String> repeatEntityArrayList = entityArrayList.stream()
.collect(Collectors.groupingBy(a -> a.getName(), Collectors.counting()))
.entrySet().stream().filter(entity -> entity.getValue() > 1)
.map(entity -> entity.getKey())
.collect(Collectors.toList());
转map集合
Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, option -> option, (oldOption, newOption) -> newOption));
5、集合去重
// 去重前:[{name=苹果, id=1}, {name=香蕉, id=2}, {name=梨子, id=3}, {name=香蕉, id=4}]
System.out.println("去重前:" + list);
ArrayList<Map<String, String>> mapArrayList = list.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(
s -> String.valueOf(s.get("name"))))), ArrayList::new));
// 去重后:[{name=梨子, id=3}, {name=苹果, id=1}, {name=香蕉, id=2}]
System.out.println("去重后:" + mapArrayList);
// 根据属性name来去重,去重代码如下
List persons = new ArrayList();
//赋值初始化过程省略
List uniqueByName = persons.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
);
// 根据name,sex两个属性去重
List persons = new ArrayList();
// 赋值初始化过程省略
List uniqueByNameAndSex = persons.stream().collect(
Collectors. collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName() + ";" + o.getSex()))), ArrayList::new)
);
list.stream().distinct().collect(Collectors.toList());
6、判断 name 值再 nameList 当中是否存在
String voName = "werewtwtt";
if(nameList.stream().filter(m->m.getName().equals(voName)).findAny().isPresent()){
// 存在 的业务.......
}
7、数据过滤处理
ModelMap model = new ModelMap();
TSmClazz TSmClazz = tSmClazzService.get(id);
List<Student> students = TSmClazz.getStudents();
if(flag.equals("0")){ List<Student>boys=students.stream().filter(s>s.getSex().equals("0")).collect(Collectors.toList());
model.put("data", boys);
}else if(flag.equals("1")){
List<Student>girls=students.stream().filter(s>s.getSex().equals("1")).collect(Collectors.toList());
model.put("data", girls);
}else{
model.put("data", students);
}