java8-Collect(join,group,tolist,toSet,toMap)

  • collect在流中生成列表,map,等常用的数据结构
  • toList()
  • toSet()
  • toMap()
  • 自定义
 /**
 * toList
 */
 public static void toListTest(){
 List<PersonModel> data = Data.getData();
 List<String> collect = data.stream()
 .map(PersonModel::getName)
 .collect(Collectors.toList());
 }

 /**
 * toSet
 */
 public static void toSetTest(){
 List<PersonModel> data = Data.getData();
 Set<String> collect = data.stream()
 .map(PersonModel::getName)
 .collect(Collectors.toSet());
 }

 /**
 * toMap
 */
 public static void toMapTest(){
 List<PersonModel> data = Data.getData();
 Map<String, Integer> collect = data.stream()
 .collect(
 Collectors.toMap(PersonModel::getName, PersonModel::getAge)
 );

 data.stream()
 .collect(Collectors.toMap(per->per.getName(), value->{
 return value+"1";
 }));
 }

 /**
 * 指定类型
 */
 public static void toTreeSetTest(){
 List<PersonModel> data = Data.getData();
 TreeSet<PersonModel> collect = data.stream()
 .collect(Collectors.toCollection(TreeSet::new));
 System.out.println(collect);
 }

 /**
 * 分组
 */
 public static void toGroupTest(){
 List<PersonModel> data = Data.getData();
 Map<Boolean, List<PersonModel>> collect = data.stream()
 .collect(Collectors.groupingBy(per -> "男".equals(per.getSex())));
 System.out.println(collect);
 }

 /**
 * 分隔
 */
 public static void toJoiningTest(){
 List<PersonModel> data = Data.getData();
 String collect = data.stream()
 .map(personModel -> personModel.getName())
 .collect(Collectors.joining(",", "{", "}"));
 System.out.println(collect);
 }

 /**
 * 自定义
 */
 public static void reduce(){
 List<String> collect = Stream.of("1", "2", "3").collect(
 Collectors.reducing(new ArrayList<String>(), x -> Arrays.asList(x), (y, z) -> {
 y.addAll(z);
 return y;
 }));
 System.out.println(collect);
 }

猜你喜欢

转载自blog.csdn.net/wb_zjp283121/article/details/89057419