Java8 Streams map 使用

1. 将 List 中的对象转为字符串

java 复制代码
public class Developer {


  private String name;

  private BigDecimal salary;

  private Integer age;

  //...

}
java 复制代码
public static void main(String[] args) {
    List<Developer> persons = Arrays.asList(
        new Developer("zhangsan", 20),
        new Developer("lisi",21),
        new Developer("wangwu",22));

    //Before Java 8
    List<String> result = new ArrayList<>();
    for (Developer developer : persons) {
      result.add(developer.getName());
    }

    System.out.println(result); // [zhangsan, lisi, wangwu]

    //Java 8
    List<String> collect = persons.stream().map(x -> x.getName()).collect(Collectors.toList());
    System.out.println(collect); // [zhangsan, lisi, wangwu]
  }

2. 将 List 中的字符串转为大写

java 复制代码
public static void main(String[] args) {
    List<String> alpha = Arrays.asList("a", "b", "c", "d");

    //Before Java8
    List<String> alphaUpper = new ArrayList<>();
    for (String s : alpha) {
      alphaUpper.add(s.toUpperCase());
    }

    System.out.println(alpha); //[a, b, c, d]
    System.out.println(alphaUpper); //[A, B, C, D]

    // Java 8
    List<String> collect = alpha.stream().map(String::toUpperCase).collect(Collectors.toList());
    System.out.println(collect); //[A, B, C, D]

    // Extra, streams apply to any data type.
    List<Integer> num = Arrays.asList(1,2,3,4,5);
    List<Integer> collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList());
    System.out.println(collect1); //[2, 4, 6, 8, 10]
  }

3. 将 List 中的对象转为另一个对象

java 复制代码
List<Developer> developers = Arrays.asList(
        new Developer("zhangsan", 20),
        new Developer("lisi",21),
        new Developer("wangwu",22));

List<Person> result = developers.stream().map(temp -> {
      Person person = new Person();
      person.setName(temp.getName());
      person.setAge(temp.getAge());

      if ("lisi".equals(temp.getName())) {
        person.setExtra("i am lisi");
      }
      return person;
    }).collect(Collectors.toList());

    System.out.println(JSONUtil.toJsonStr(result));      
相关推荐
西峰u18 分钟前
Java单例模式|从基础到多线程安全
java·java单例模式
ClinicTech19 分钟前
实验室洗瓶机的清洗系统架构与自动化控制解析
java·python
易点云徐源22 分钟前
(已解决)Photoshop 2020 点击“选择主体”闪退:不用重装,1 个配置切回旧算法解决
windows·photoshop
linmengmeng_131433 分钟前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
木井巳38 分钟前
【记忆化搜索】不同路径
java·算法·leetcode·深度优先·剪枝·推荐算法
Sam_Deep_Thinking39 分钟前
new Thread()之后发生了什么?
java·后端·面试·程序员
泡海椒40 分钟前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
云计算练习生1 小时前
什么是系统调用?为什么程序访问硬件必须经过它
linux·windows·操作系统·系统调用·操作系统原理
wno7041 小时前
Spring Security短信验证码登录
java·python·spring
步行cgn1 小时前
Spring util 命名空间详解
java·后端·spring