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

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

按Java 8流API分組

按Java 8流API分組

動(dòng)漫人物 2019-10-06 15:13:09
我嘗試在Java 8流API中找到一種簡單的方法來進(jìn)行分組,我提出了這種復(fù)雜的方法!List<String> list = new ArrayList<>();list.add("Hello");list.add("Hello");list.add("World");Map<String, List<String>> collect = list.stream().collect(        Collectors.groupingBy(o -> o));System.out.println(collect);List<String[]> collect2 = collect        .entrySet()        .stream()        .map(e -> new String[] { e.getKey(),                String.valueOf(e.getValue().size()) })        .collect(Collectors.toList());collect2.forEach(o -> System.out.println(o[0] + " >> " + o[1]));感謝您的投入。
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

我認(rèn)為您只是在尋找過載,它需要另一個(gè)負(fù)載Collector來指定對每個(gè)組的處理方式...然后Collectors.counting()進(jìn)行計(jì)數(shù):


import java.util.*;

import java.util.stream.*;


class Test {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();


        list.add("Hello");

        list.add("Hello");

        list.add("World");


        Map<String, Long> counted = list.stream()

            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));


        System.out.println(counted);

    }

}

結(jié)果:


{Hello=2, World=1}

(也有可能使用groupingByConcurrent來提高效率。如果在您的上下文中安全的話,請記住您的真實(shí)代碼。)


查看完整回答
反對 回復(fù) 2019-10-06
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

這是完成手頭任務(wù)的略有不同的選擇。


使用toMap:


list.stream()

    .collect(Collectors.toMap(Function.identity(), e -> 1, Math::addExact));

使用Map::merge:


Map<String, Integer> accumulator = new HashMap<>();

list.forEach(s -> accumulator.merge(s, 1, Math::addExact));


查看完整回答
反對 回復(fù) 2019-10-06
  • 3 回答
  • 0 關(guān)注
  • 383 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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