您的位置 首页 java

java8集合中的map方法

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

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

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

 public class  Java 8Map {
    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
@AllArgs Constructor 
class Postman {
     private  String sex;
    private int age;
}

@Data
@AllArgsConstructor
class 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类型的集合了。

文章来源:智云一二三科技

文章标题:java8集合中的map方法

文章地址:https://www.zhihuclub.com/190440.shtml

关于作者: 智云科技

热门文章

网站地图