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 strs = Arrays.asList("好,好,学", "习,天,天", "向,上");

		List 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 strList = strs.stream().map(str -> str.split(",")).flatMap(Arrays::stream)
				.collect(Collectors.toList());

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

	}

}

运行结果:

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









你可能感兴趣的:(java,8)