博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java8 新特性 Streams map() 示例
阅读量:6081 次
发布时间:2019-06-20

本文共 5157 字,大约阅读时间需要 17 分钟。

在Java 8中stream().map(),您可以将对象转换为其他对象。查看以下示例:

1.大写字符串列表

1.1简单的Java示例将Strings列表转换为大写。

TestJava8.javapackage com.mkyong.java8;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class TestJava8 {    public static void main(String[] args) {        List
alpha = Arrays.asList("a", "b", "c", "d"); //Before Java8 List
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
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
num = Arrays.asList(1,2,3,4,5); List
collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList()); System.out.println(collect1); //[2, 4, 6, 8, 10] }}

  

 

2.对象列表 - >字符串列表

2.1 namestaff对象列表中获取所有值。

Staff.javapackage com.mkyong.java8;import java.math.BigDecimal;public class Staff {    private String name;    private int age;    private BigDecimal salary;    //...}TestJava8.javapackage com.mkyong.java8;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class TestJava8 {    public static void main(String[] args) {        List
staff = Arrays.asList( new Staff("mkyong", 30, new BigDecimal(10000)), new Staff("jack", 27, new BigDecimal(20000)), new Staff("lawrence", 33, new BigDecimal(30000)) ); //Before Java 8 List
result = new ArrayList<>(); for (Staff x : staff) { result.add(x.getName()); } System.out.println(result); //[mkyong, jack, lawrence] //Java 8 List
collect = staff.stream().map(x -> x.getName()).collect(Collectors.toList()); System.out.println(collect); //[mkyong, jack, lawrence] }}

  

 

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

3.1此示例说明如何将staff对象列表转换为对象列表StaffPublic

Staff.javapackage com.mkyong.java8;import java.math.BigDecimal;public class Staff {    private String name;    private int age;    private BigDecimal salary;    //...}StaffPublic.javapackage com.mkyong.java8;public class StaffPublic {    private String name;    private int age;    private String extra;    //...}

 

 

3.2 Java 8之前。

BeforeJava8.javapackage com.mkyong.java8;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class BeforeJava8 {    public static void main(String[] args) {        List
staff = Arrays.asList( new Staff("mkyong", 30, new BigDecimal(10000)), new Staff("jack", 27, new BigDecimal(20000)), new Staff("lawrence", 33, new BigDecimal(30000)) ); List
result = convertToStaffPublic(staff); System.out.println(result); } private static List
convertToStaffPublic(List
staff) { List
result = new ArrayList<>(); for (Staff temp : staff) { StaffPublic obj = new StaffPublic(); obj.setName(temp.getName()); obj.setAge(temp.getAge()); if ("mkyong".equals(temp.getName())) { obj.setExtra("this field is for mkyong only!"); } result.add(obj); } return result; }}输出[ StaffPublic{name='mkyong', age=30, extra='this field is for mkyong only!'}, StaffPublic{name='jack', age=27, extra='null'}, StaffPublic{name='lawrence', age=33, extra='null'}]

  

 

3.3 Java 8的例子。

NowJava8.java

package com.mkyong.java8;package com.hostingcompass.web.java8;import java.math.BigDecimal;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class NowJava8 {    public static void main(String[] args) {        List
staff = Arrays.asList( new Staff("mkyong", 30, new BigDecimal(10000)), new Staff("jack", 27, new BigDecimal(20000)), new Staff("lawrence", 33, new BigDecimal(30000)) ); // convert inside the map() method directly. List
result = staff.stream().map(temp -> { StaffPublic obj = new StaffPublic(); obj.setName(temp.getName()); obj.setAge(temp.getAge()); if ("mkyong".equals(temp.getName())) { obj.setExtra("this field is for mkyong only!"); } return obj; }).collect(Collectors.toList()); System.out.println(result); }}

 

 

输出

[    StaffPublic{name='mkyong', age=30, extra='this field is for mkyong only!'},    StaffPublic{name='jack', age=27, extra='null'}, StaffPublic{name='lawrence', age=33, extra='null'} ]

转载于:https://www.cnblogs.com/sbj-dawn/p/9075765.html

你可能感兴趣的文章
前端面试中的常见的算法问题
查看>>
计算机语言的基本理论
查看>>
nodejs流之行读取器例子
查看>>
批量文件重命名工具
查看>>
简单说一下UWP中的JumpList
查看>>
unity将object[]或者string对象转换成枚举enum
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.19. 范围函数和操作符...
查看>>
以太坊系列之六: p2p模块--以太坊源码学习
查看>>
使用scikit-learn解决文本多分类问题(附python演练)
查看>>
2018 年最值得关注的 JavaScript 趋势
查看>>
什么是区块链?超级账本 Brian Behlendorf 从五个方面教你认识
查看>>
Linux中的帮助功能
查看>>
针对Android的Pegasus恶意软件版本和针对iOS的有什么不同?
查看>>
全局探色器
查看>>
Hive Export和Import介绍及操作示例
查看>>
http://mongoexplorer.com/ 一个不错的 mongodb 客户端工具。。。
查看>>
Xcode 4.3 使用xcodebuild命令编译项目环境设置
查看>>
上传jar包到nexus私服
查看>>
Android LruCache 二级缓存
查看>>
Java使用Redis
查看>>