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));      
相关推荐
校招VIP5 分钟前
[校大]27届东华理工大学JAVA简历:中厂简历通过率30%
java·秋招·校招·实习·产品岗·27届
进击切图仔10 分钟前
在 windows 和 ubuntu 中配置 host 文件
linux·windows·ubuntu
老白干25 分钟前
基于 Spring AOP 的操作日志记录:以 DeptController 增删接口为例
java·python·spring
烟锁池塘柳01 小时前
【亲测有效】Windows上更新NVIDIA显卡驱动的方法
windows·nvidia·显卡驱动
晚安code1 小时前
Java编程规范避坑指南:阿里开发手册15条强制规约实战解析
java·后端
小蒜学长2 小时前
“守望自然”招募志愿者环保行动网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
萧瑟余晖2 小时前
Java深入解析篇十八之响应式编程
java·开发语言
看浪的路人2 小时前
第5讲:代码审查与 Bug 检测
开发语言·windows·python
IKUN家族3 小时前
Spring MVC(五)
java·spring·mvc
weixin_BYSJ19873 小时前
【java项目分享】springboot阅读推荐平台10600
java·javascript·spring boot·python·django·flask·php