第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java8 flatmap

java8 flatmap

Helenr 2018-09-04 17:38:41
java8 stream 的 flatmap 跟map有啥區(qū)別?有例子不
查看完整描述

2 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個贊

比如一個List<?>,map能夠直接操作list中的每個對象

List<Integer> integers = new ArrayList<>();
//添加數(shù)據(jù)略
integers.stream.map(i -> i + 1).foreach(System.out::println);

而使用flatmap使我們能夠操作更深一層的數(shù)據(jù),如下:
List<List<?>>


List<List<Integer>> outer = new ArrayList<>();

List<Integer> inner1 = new ArrayList<>();

inner1.add(1);

List<Integer> inner2 = new ArrayList<>();

inner1.add(2);

List<Integer> inner3 = new ArrayList<>();

inner1.add(3);

List<Integer> inner4 = new ArrayList<>();

inner1.add(4);

List<Integer> inner5 = new ArrayList<>();

inner1.add(5);

outer.add(inner1);

outer.add(inner2);

outer.add(inner3);

outer.add(inner4);

outer.add(inner5);

List<Integer> result = outer.stream().flatMap(inner -> inner.stream().map(i -> i + 1)).collect(toList());

System.out.println(result);


查看完整回答
3 反對 回復(fù) 2018-09-16
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個贊

flatmap可以在lamda中返回集合,然后flat為單個元素一個個放入最后的結(jié)果集中。
比如Person里頭有個多個Hobby(List<Hobby>),那我想獲取所有人的所有hobby,則可以:
List<Person> persons = ...
Set<Hobby> hobbySet = persons.parallelStream().flatMap(p -> p.getHobbyList.stream())
.collect(Collectors.toCollection(() -> new TreeSet<Hobby>(
(h1,h2) -> h1.getName().compareTo(h2.getName())
)))

查看完整回答
1 反對 回復(fù) 2018-09-16
  • 2 回答
  • 0 關(guān)注
  • 3758 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號