Stream 中的map 与flatMap 用法

package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

import net.sf.json.JSONArray;

public class Test {
	public static void main(String[] args) {

		List<String> strs = Arrays.asList("好,好,学", "习,天,天", "向,上");

		List<String[]> strArray = strs.stream().map(str -> str.split(",")).collect(Collectors.toList());

		JSONArray jsonArray = JSONArray.fromObject(strArray);

		System.out.println("strArray => " + jsonArray.toString());

		// flatMap与map的区别在于 flatMap是将一个流中的每个值都转成一个个流,然后再将这些流扁平化成为一个流 。
		List<String> strList = strs.stream().map(str -> str.split(",")).flatMap(Arrays::stream)
				.collect(Collectors.toList());

		System.out.println("strList => " + strList);

	}

}

运行结果:

strArray => [[“好”,”好”,”学”],[“习”,”天”,”天”],[“向”,”上”]]
strList => [好, 好, 学, 习, 天, 天, 向, 上]

    原文作者:java编程-IT
    原文地址: https://blog.csdn.net/jiangpingjiangping/article/details/76392904
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞