java map(java8集合中的map方法)

首先map可以翻译为映射,所以map方法其实就是通过map进行映射。 map映射就是将流中的对象转换成另一个对象。通过这样的过程就可以将一个集合通过流的map映射,最终转换成另一个集合。 比如我...

首先map可以翻译为映射,所以map方法其实就是通过map进行映射。

map映射就是将流中的对象转换成另一个对象。通过这样的过程就可以将一个集合通过流的map映射,最终转换成另一个集合。

比如我们将Postman对象集合转换为对象中的年龄的集合

public class Java8Map { public static void main(String[] args) { List<Postman> list = new ArrayList<>(); list.add(new Postman("男", 15)); list.add(new Postman("男", 17)); list.add(new Postman("男", 19)); list.add(new Postman("女", 21)); list.add(new Postman("女", 23)); // 将这个Postman类型的List集合转换成保存所有年龄数据的Integer类型的集合 List<Integer> ages = list.stream().map(Postman::getAge).collect(Collectors.toList()); System.out.println(ages); }}@Data@AllArgsConstructorclass Postman { private String sex; private int age;}@Data@AllArgsConstructorclass Person { private String sex; private int age;}

如上图所示,将list通过stream方法流化之后,再通过map方法可以将流中的对象映射成另外的对象。而map方法的参数就是映射的规则,如图中就是表示将流中的每个Postman对象映射成这个对象的age属性。然后将映射后的Integer对象流收集成集合。

那如果是要转换成另外一个类型Person的集合呢?

List<Person> personList = list.stream().map(i -> { return new Person(i.getSex(), i.getAge()); }).collect(Collectors.toList());System.out.println(personList);

[Person(sex=男, age=15), Person(sex=男, age=17), Person(sex=男, age=19), Person(sex=女, age=21), Person(sex=女, age=23)]

映射的关键方法map中的代码被“->”分成了两部分。前面的部分是表示流中的每一个对象,后面的部分表示要映射的结果。(实际应用中映射的逻辑一般不会这么简单,一行就能搞定,需要结合业务逻辑编写映射的规则)。

这样最终通过collect收集起来的集合就是Person类型的集合了。

  • 发表于 2022-10-30 00:34:22
  • 阅读 ( 168 )
  • 分类:科技

0 条评论

请先 登录 后评论
林健辉
林健辉

304 篇文章

你可能感兴趣的文章

相关问题