map和flatmap的區(qū)別
map只是一維 1對1 的映射
而flatmap可以將一個2維的集合映射成一個一維,相當于他映射的深度比map深了一層 ,
所以名稱上就把map加了個flat 叫flatmap
package com.hyc;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class SreamTest {
public static void main(String[] args) {
/**獲取單詞,并且去重**/
? ? ? List list = Arrays.asList("beijing changcheng", "beijing gugong", "beijing tiantan",
? ? ? ? "gugong tiananmen");
? ? ? //map
//map只能將分割結果轉(zhuǎn)成一個List,所以輸出為list對象
? ? ? list.stream().map(item -> Arrays.stream(item.split(" "))).forEach(System.out::println);
? ? ? //如果我們想要每個list里的元素,還需要一層foreach
? ? ? list.stream().map(item -> Arrays.stream(item.split(" "))).forEach(n->{
n.forEach(System.out::println);
? ? ? });
? ? ? System.out.println("************* ");
? ? ? //flatmap
//flatmap可以將字符串分割成各自的list之后直接合并成一個List
//也就是flatmap可以將一個2維的集合轉(zhuǎn)成1維度
? ? ? list.stream().flatMap(item -> Arrays.stream(item.split(" "))).collect(Collectors.toList()).forEach(System.out::println);
? }
}