Java8中的stream.map()的用法

Java8中的stream.map()的用法

简介

这是java 8中新增加的函数式编程的使用方法。函数式编程简单理解就是将方法作为参数传入,能够提高编写效率,减少代码冗余量。

例子

class Test{
   
  public static void main(String[] args) {
   
        ArrayList<Integer> list = new ArrayList<>()
  • 18
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
除了上面提到的对每个元素都进行映射之外,Java8stream.map()方法还有一些更多的用法。 1. 对象类型转换 stream.map()方法可以将一个对象类型转换为另一个对象类型。例如,我们有一个Person对象列表,我们可以使用stream.map()方法将这些Person对象转换为它们的姓名列表。代码如下: ``` List<Person> personList = new ArrayList<>(); personList.add(new Person("Tom", 25)); personList.add(new Person("John", 30)); personList.add(new Person("Mary", 28)); List<String> nameList = personList.stream() .map(Person::getName) .collect(Collectors.toList()); ``` 在上面的代码,我们使用map()方法从Person对象列表提取每个Person对象的姓名,并将这些姓名存储到一个新的List集合。 2. 数组类型转换 stream.map()方法还可以将一个数组类型转换为另一个数组类型。例如,我们有一个整型数组,我们可以使用stream.map()方法将这些整数转换为字符串数组。代码如下: ``` int[] arr = {1, 2, 3, 4, 5}; String[] strArr = Arrays.stream(arr) .mapToObj(String::valueOf) .toArray(String[]::new); ``` 在上面的代码,我们使用mapToObj()方法将整型数组的每个元素转换为字符串类型的元素,并使用toArray()方法将这些字符串存储到一个新的字符串数组。 3. 多级映射 stream.map()方法还可以进行多级映射,即对每个元素进行多次映射操作。例如,我们有一个字符串列表,需要对列表的每个字符串进行以下三步操作:将字符串转换为大写字母,将大写字母字符串转换为字符数组,然后将字符数组转换为流。代码如下: ``` List<String> strList = Arrays.asList("hello", "world", "java"); Stream<Character> charStream = strList.stream() .map(String::toUpperCase) .map(s -> s.toCharArray()) .flatMap(chars -> Arrays.stream(chars) .mapToObj(ch -> ch)); ``` 在上面的代码,我们首先使用map()方法将字符串列表的每个字符串转换为大写字母字符串,然后使用map()方法将这些大写字母字符串转换为字符数组,最后使用flatMap()方法将字符数组转换为流,并将每个字符转换为一个流的元素。 这些是Java8stream.map()方法的一些更多用法,希望能够帮助你更好地理解stream.map()方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值