zoukankan      html  css  js  c++  java
  • Java——Stream map

    一、介绍

    在Java 8中,Stream的map方法可以将对象转化为其他对象。

    二、例子

    2.1、大写字符串列表

    List<String> list = new ArrayList<>();
    Collections.addAll(list, "a", "b", "c");
    list = list.stream().map(String::toUpperCase).collect(Collectors.toList());
    System.out.println(list);   // [A, B, C]
    

    2.2、对象列表 -> 字符串列表

    List<Student> list = new ArrayList<>();
    Student stu1 = new Student("张三", 10);
    Student stu2 = new Student("李四", 30);
    Student stu3 = new Student("王五", 20);
    Collections.addAll(list, stu1, stu2 ,stu3);
    List<String> newList = list.stream().map(stu -> stu.getName()).collect(Collectors.toList());
    System.out.println(newList);   // [张三, 李四, 王五]
    

    2.3、对象列表 -> 其他对象列表

    // Student.java
    public class Student {
        private String name;
        private int age;
        //...
    }
    
    
    // Teacher.java
    public class Teacher {
        private String name;
        private int age;
        //...
    }
    
    // StreamMap.java
    public class StreamMap {
        public static void main(String[] args) {
            List<Student> list = new ArrayList<>();
            Student stu1 = new Student("张三", 24);
            Student stu2 = new Student("李四", 22);
            Student stu3 = new Student("王五", 25);
            Collections.addAll(list, stu1, stu2, stu3);
            List<Teacher> teacList = list.stream().map(stu -> {
               String name = stu.getName();
               int age = stu.getAge();
               return new Teacher(name, age);
            }).collect(Collectors.toList());
            teacList.stream().forEach(stu -> System.out.println(stu));
            //Teacher{name='张三', age=24}
            //Teacher{name='李四', age=22}
            //Teacher{name='王五', age=25}
        }
    }
    

      

      

  • 相关阅读:
    数据结构之链表——加里森的任务(循环链表)
    数据结构之队列——回文字判断
    数据结构之栈——二进制转十进制
    《爱的艺术》人类超越了本能
    从一个Activity返回上一个Activity
    VS(C++)编程遇到的错误集合
    C++(MFC)编程一些注意事项
    Tomcat部署(进行web服务器开发)
    本地IP与宽带IP
    opencv的Mat图像显示在MFC控件中
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14804097.html
Copyright © 2011-2022 走看看