Java学习记录-Lambda表达式示例

//list
List<Integer> userIds=userInfoList.stream().map(m->m.getUserId()).collect(Collectors.toList());
//distinct List
<Integer> userIdsDis=userInfoList.stream().map(m->m.getUserId()).distinct().collect(Collectors.toList());
//array Integer[] userIdsArray
= userInfoList.stream().map(m->m.getUserId()).distinct().collect(Collectors.toList()).toArray(new Integer[0]); int[] userIdsArray2=userInfoList.stream().mapToInt(m-> Integer.valueOf(m.getUserId())).toArray();
//join String userIdStr
= userInfoList.stream().map(m->m.getUserName()).collect(Collectors.joining(", "));
//filter List
<UserInfo> userInfoList1=userInfoList.stream().filter(m->m.getAge()>10).collect(Collectors.toList());
//get UserInfo userInfo
=userInfoList.stream().filter(m->m.getUserId()==1).findFirst().get();
//new object List
<UserWithCompany> userWithCompanies =userInfoList.stream().map(m->new UserWithCompany(m.getUserId())).collect(Collectors.toList());
//map Map
<Integer,UserInfo> userInfoMap=userInfoList.stream().collect(Collectors.toMap(UserInfo::getUserId, m -> m));
//group
Map<String, List<
UserInfo>> singleMap = studentList.stream().collect(Collectors.groupingBy(UserInfo::getCode));
//多条件分组

 Map<String, List<Student>> complexMap = studentList.stream().collect(Collectors.groupingBy(e -> fetchGroupKey(e)));

  private static String fetchGroupKey(Student student){
    return student.getUsername() +"+"+ student.getCode();
  }

//for
userInfoList.stream().forEach(m
->{
  System.out.println(m.getUserName());
  System.out.println(m.getUserId());
});
 

 

参考资料:

使用java8将list转为map

posted @ 2017-07-05 13:50  风过无痕521  阅读(224)  评论(0编辑  收藏  举报