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

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

如何使用 <String, List<Integer>> 在哈希圖中存儲值

如何使用 <String, List<Integer>> 在哈希圖中存儲值

慕勒3428872 2021-12-22 20:31:10
我有以下數(shù)組我正在嘗試將數(shù)組信息保存在哈希圖中。String[][] students = {{"Bobby", 87}, {"Charles", 100}, {"Eric", 64},                                {"Charles", 22}};Map<String, List<Integer>> map = new HashMap<>();List<Integer> score1 = new ArrayList<>();for(int i=0; i<students.length; i++) {    score1.add(students[i][1]);    map.put(students[i][0], score1);}但我想將信息存儲在地圖鍵值對中。預期輸出:"Bobby" -> 87"Charles" -> 100,22"Eric" -> 64實際輸出:{Charles=[87, 100, 64, 22], Eric=[87, 100, 64, 22], Bobby=[87, 100, 64, 22]}我怎樣才能做到這一點?
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

使用 java-8,您可以在一行中使用以下所有內(nèi)容:

Map<String, List<Integer>> collect1 = 
     Arrays.stream(students).collect(Collectors.groupingBy(arr -> arr[0], 
              Collectors.mapping(arr -> Integer.parseInt(arr[1]), Collectors.toList())));

在這里,我們按學生姓名的第 0 個索引分組,第 1 個索引將保存學生的分數(shù)。


查看完整回答
反對 回復 2021-12-22
?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

您需要區(qū)分已經(jīng)存在的和新的數(shù)組:


 List<Integer> currScore = map.get(students[i][0])

 if (currScore != null) {

   currScore.add(students[i][1]);

 } else {

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

    newScore.add(students[i][1]);

    map.put(students[i][0], newScore);

 }

還將變量名稱更改為有意義的名稱


查看完整回答
反對 回復 2021-12-22
?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

String[][] students = { { "Bobby", "87" }, { "Charles", "100" }, { "Eric", "64" }, { "Charles", "22" } };

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

Stream.of(students).forEach(student -> map.computeIfAbsent(student[0], s -> new ArrayList<>()).add(Integer.parseInt(student[1])));



查看完整回答
反對 回復 2021-12-22
  • 3 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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