java8相关应用
//1. 获取集合中的所有id用,隔开。
//List<Classes> list
String ids = list.stream().map(x->String.valueOf(x.getClassesId())).collect(Collectors.joining(","));
//2. 获取Long类型id集合
List<Long> itemIds = list.stream().map(item -> item.getItemId()).collect(Collectors.toList());
//3.forEach便利集合对象
//List<Member> bmlist
bmlist.forEach(member->{//实体对象
if (StringUtils.isNotEmpty(member)) {
//业务处理
}
});
//4.map便利集合对象
//Map<String , String> map
map.forEach((k,v)->{
System.out.println("key="+k+",value="+v);
});
//5. sort排序
Collections.sort(list,(o1,o2)->{return o1.compareTo(o2);});
//另外,通过重写Consumer接口的accept方法更改集合数据。
//6. anyMatch,allMatch,noneMatch
//只要有一个条件满足即返回true
boolean anyMatch(Predicate<? super T> predicate)
//必须全部都满足才会返回true
boolean allMatch(Predicate<? super T> predicate)
//全都不满足才会返回true
boolean noneMatch(Predicate<? super T> predicate)
//应用实例,List<Long> itemIds,inspectItem对象,有匹配值返回true
boolean flag = (!itemIds.isEmpty() &&
itemIds.stream().anyMatch(
item->item.equals(inspectItem.getItemId())));
//7. Optional使用
Optional<Organization> represent = list.stream().filter(m-> m.getRelation().equals("户主")).findFirst();
if (represent.isPresent()) {//exist
mmap.put("represent", represent.get());//获取对象
}
//判空,可返回默认
Optional.ofNullable(represent).orElse(other);//orElseGet()
//8 计算
//BigDecimal
BigDecimal total = list.stream().map(ReturnMoney::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
//mapToDouble,mapToInt,mapToLong
Double total = list.stream().mapToDouble(ReturnMoney::getAmount()).sum()//和;.max()//最大;.min()//最小;.average()//平均值
//9. 其他
String s = "2|4|6";
String[] ss = s.split("|");
System.out.println(ss.length);
8返回5,
7返回6