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 => [好, 好, 学, 习, 天, 天, 向, 上]