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

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

在 Java 中將流轉(zhuǎn)換為字符串

在 Java 中將流轉(zhuǎn)換為字符串

慕斯709654 2023-03-09 10:59:07
我想將 Map<> 的 Stream 轉(zhuǎn)換為 String,并將其附加到 textArea。我嘗試了一些方法,最后一個(gè)是使用 StringBuilder,但它們不起作用。public <K, V extends Comparable<? super V>> String sortByAscendentValue(Map<K, V> map, int maxSize) {    StringBuilder sBuilder = new StringBuilder();    Stream<Map.Entry<K,V>> sorted =            map.entrySet().stream()               .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()));    BufferedReader br = new BufferedReader(new InputStreamReader((InputStream) sorted));    String read;    try {        while ((read=br.readLine()) != null) {            //System.out.println(read);            sBuilder.append(read);        }    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    sorted.limit(maxSize).forEach(System.out::println);    return sBuilder.toString();}
查看完整描述

3 回答

?
慕娘9325324

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

您可以按如下方式將條目收集到一個(gè)條目中String

  String sorted =
        map.entrySet().stream()
           .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
           .map(e-> e.getKey().toString() + "=" + e.getValue().toString())
           .collect(Collectors.joining (","));


查看完整回答
反對(duì) 回復(fù) 2023-03-09
?
慕斯王

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

考慮對(duì)@Eran的代碼進(jìn)行細(xì)微更改,因?yàn)樗呀?jīng)為您HashMap.Entry.toString()加入了:=

String sorted =
    map.entrySet().stream()
        .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
        .map(Objects::toString)
        .collect(Collectors.joining(","));


查看完整回答
反對(duì) 回復(fù) 2023-03-09
?
慕后森

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

這很容易做到,您可以使用 Steams API 來(lái)做到這一點(diǎn)。首先,您將映射中的每個(gè)條目映射到單個(gè)字符串 - 鍵和值的串聯(lián)字符串。一旦有了它,您就可以簡(jiǎn)單地使用reduce()方法或collect()方法來(lái)完成它。


使用“reduce()”方法的代碼片段將如下所示:


    Map<String, String> map = new HashMap<>();

    map.put("sam1", "sam1");

    map.put("sam2", "sam2");


    String concatString = map.entrySet()

        .stream()

        .map(element-> element.getKey().toString() + " : " + element.getValue().toString())

        .reduce("", (str1,str2) -> str1 + " , " + str2).substring(3);


    System.out.println(concatString);

這將為您提供以下輸出:


sam2 : sam2 , sam1 : sam1

您還可以使用collect()' method instead ofreduce()` 方法。它看起來(lái)像這樣:


    String concatString = map.entrySet()

            .stream()

            .map(element-> element.getKey().toString() + " : " + element.getValue().toString())

            .collect(Collectors.reducing("", (str1,str2) -> str1 + " , " + str2)).substring(3);

兩種方法都提供相同的輸出。


查看完整回答
反對(duì) 回復(fù) 2023-03-09
  • 3 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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