java8_day03

Stream 的Map()方法

代码示例:

package day02;
import java.util.Arrays;
import java.util.List;
/**
 * 将集合中长度为5的字符串打印出来
 */
public class StreamTest02 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("hello","world","Hello world");
        /*list.stream().mapToInt(item -> item.length()).filter(length -> length == 5)
                .findFirst().ifPresent(System.out::println);
*/
        list.stream().mapToInt(item -> {
            int length = item.length();
            System.out.println(item);
            return length;
        }).filter(length -> length == 5)
                .findFirst().ifPresent(System.out::println);
        /**打印结果:
         *      hello
         *      5
         *  原因:stream()中存在短路操作,如果stream中有一个执行不通过,那么其他的也不会执行。
         */
    }
}
Stream 的flatMap()方法

代码示例一:

package day02;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 将集合中的单词取出来,并去重
 *      * flatMap(Arrays::stream)的作用是将Stream(String[]),转换成Stream(String)
 */
public class StreamTest03 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("hello","world","Hello world","Hello World"
                ,"hello welcome","welcome hello");

        list.stream().map(item -> item.split(" ")).flatMap(Arrays::stream).distinct()
                .collect(Collectors.toList()).forEach(System.out::println);
    }
}

代码示例二:

package day02;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 将集合中的单词取出来,并去重
 *      * flatMap(Arrays::stream)的作用是将Stream(String[]),转换成Stream(String)
 */
public class StreamTest04 {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("Hi","Hello","你好");
        List<String> list2 = Arrays.asList("张三","李四","王五","赵丽颖");

        System.out.println(list1.stream().flatMap(item -> list2.stream().map(item2 -> item + " " + item2))
                .collect(Collectors.toList()));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值