一、利用stream().forEach()遍历集合
List<String> list = new ArrayList<String>();
list.add("djk");
list.add("djk1");
list.add("djk12");
list.add("djk123");
//利用stream().forEach()遍历集合
list.stream().forEach(item->{System.out.print(item+" ");});
二、利用stream().map()对List进行大写处理,并给另外一个List赋值,并对其遍历
List<String> list = new ArrayList<String>();
list.add("djk");
list.add("djk1");
list.add("djk12");
list.add("djk123");
List<String> list4 = new ArrayList<String>();
list4 = list.stream().map(item->item.toUpperCase()).collect(Collectors.toList());
list4.stream().forEach(item->{System.out.println(item);});
三、利用stream().filter()对List进行过滤处理,并给另一个list赋值,并对其遍历
List<String> list = new ArrayList<String>();
list.add("djk");
list.add("djk1");
list.add("djk12");
list.add("djk123");
List<String> list3 = new ArrayList<String>();
list3 = list.stream().filter(item->!item.equals("djk")).collect(Collectors.toList());
list3.stream().forEach(item->{System.out.println(item);});
四、求某一个数列的最大值、最小值、和、平均值、数列元素数
List<Integer> listint = new ArrayList<Integer>();
listint.add(1);
listint.add(2);
listint.add(3);
listint.add(4);
listint.add(5);
IntSummaryStatistics stat = listint.stream().mapToInt((item)->item).summaryStatistics();
System.out.println("max:"+stat.getMax());
System.out.println("min:"+stat.getMin());
System.out.println("sum:"+stat.getSum());
System.out.println("count:"+stat.getCount());
System.out.println("average:"+stat.getAverage());
五、将List转成Map(1)
public Map<Long, String> getIdNameMap(List<Account> accounts) {
return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));
}
六、将List转成Map(2)
public Map<Long, Account> getIdAccountMap(List<Account> accounts) {
return accounts.stream().collect(Collectors.toMap(Account::getId, account -> account));
}
account -> account是一个返回本身的lambda表达式,其实还可以使用Function接口中的一个默认方法代替,使整个方法更简洁优雅:
public Map<Long, Account> getIdAccountMap(List<Account> accounts) {
return accounts.stream().collect(Collectors.toMap(Account::getId, Function.identity()));
}
七、将List转成Map(按某个字段分组)
public Map<Long, Account> getIdAccountMap(List<Account> accounts) {
return accounts.stream().collect(Collectors.groupingBy(Account::getId));
}
八、将List转成Map(多个字段合并成Key)
List<OrderReviseResultEntity> reviseDetailList = orf011Mapper.getRevisePartsInfo(condition);
/**
* key: partsNo + custPartsNo + suppCode
* value: revise detail
*/
Map<String, OrderReviseResultEntity> reviseDetailMap = null;
if (reviseDetailList != null && reviseDetailList.size() > 0) {
reviseDetailMap = reviseDetailList.stream().collect(Collectors.toMap(k -> {
OrderReviseResultEntity entity = (OrderReviseResultEntity) k;
String key = new StringBuffer().append(entity.getPartsNo()).append(StringConst.NEW_COMMA)
.append(entity.getCustomerPartsNo()).append(StringConst.NEW_COMMA).append(entity.getSupplierCode())
.toString();
return key;
}, k -> k));
}