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

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

如何使用 HashMap 添加具有相同鍵的多個(gè)值(不同類型、一個(gè) int 和一個(gè)字符串)?

如何使用 HashMap 添加具有相同鍵的多個(gè)值(不同類型、一個(gè) int 和一個(gè)字符串)?

吃雞游戲 2022-05-12 16:37:36
我必須存儲(chǔ)一個(gè)具有多個(gè)值的鍵,但我的值應(yīng)該是一個(gè)字符串和一個(gè) int。對(duì)于這個(gè)問(wèn)題我必須使用 List、Stack、Queue 或 Map,我認(rèn)為 Map 是正確的選擇。我有很多雙鞋,每雙鞋都有尺碼、顏色和價(jià)格。鞋子必須按尺碼訂購(gòu)。我堅(jiān)持認(rèn)為關(guān)鍵可能是鞋子的尺寸,價(jià)值應(yīng)該是顏色和價(jià)格,但我不知道如何實(shí)現(xiàn)這一點(diǎn)。例如我有:1 號(hào),36 號(hào),黑色,30 美元2 號(hào),36 號(hào),白色,35 美元3 號(hào),37 號(hào),黑色,40 美元4 號(hào),38 號(hào),黑色,45 美元例如,我如何使用 Map 存儲(chǔ)所有這些(我認(rèn)為)而不創(chuàng)建一類新的鞋子?更新:我也可以使用 SortedMap、SortedList 等。在問(wèn)題的第二部分中,我必須添加和移除特定尺寸的鞋子。
查看完整描述

3 回答

?
DIEA

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

如果您使用地圖,則每個(gè)鍵都是唯一的。您不能將尺寸用作鍵,因?yàn)樗鼈儾皇俏ㄒ坏摹?/p>


根據(jù)您的問(wèn)題描述:


我有很多雙鞋,每雙鞋都有尺碼、顏色和價(jià)格。鞋子必須按尺碼訂購(gòu)。


地圖似乎不是一個(gè)好的選擇,因?yàn)榈貓D通常沒(méi)有順序(除了SortedMap)。您需要一個(gè)可以根據(jù)特定標(biāo)準(zhǔn)排序的數(shù)據(jù)結(jié)構(gòu)。AList似乎是一個(gè)非常好的選擇。list 最常見(jiàn)的實(shí)現(xiàn)是ArrayList.


您首先需要一個(gè)類來(lái)存儲(chǔ)應(yīng)該如下所示的鞋子對(duì)象:


public class Shoe{

    int size;

    Color color; // Color is an enum, but it can be a String if you want to be less restrictive

    int price;


    public Shoe(int size, Color color, int price) {

    ...

}

然后你可以通過(guò)這種方式將你的鞋子存儲(chǔ)在你的列表中:


List<Shoe> shoes = new ArrayList<>();

shoes.add(new Shoe(36, Color.BLACK, 30));

shoes.add(new Shoe(36, Color.WHITE, 35));

shoes.add(new Shoe(37, Color.BLACK, 40));

shoes.add(new Shoe(38, Color.BLACK, 40));

...

一旦你的清單被填滿,你可以按尺寸訂購(gòu)它們:


shoes.sort(Comparator.comparing(Shoe::getSize));

替代方案:您可以使用相同的比較器創(chuàng)建一個(gè)TreeMap<Integer,List<Shoe>>(將鍵映射到列表以解決鍵沖突的排序映射),這樣即使您插入新鞋,它也會(huì)保持有序,但它看起來(lái)超出了您的問(wèn)題級(jí)別。


查看完整回答
反對(duì) 回復(fù) 2022-05-12
?
拉莫斯之舞

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

為此,您可以使用 2 張地圖。第一個(gè)地圖將包含鞋子的名稱作為鍵,地圖作為值。第二張地圖 - 屬性。就像是:


Map<String, Map<String, Object>> shoes = new HashMap<>();

Map<String, Object> shoeProps = new HashMap<>();

shoeProps.put("color", "red");

shoeProps.put("size", 38);

shoeProps.put("price", 35);

shoes.put("nike", shoeProps);


查看完整回答
反對(duì) 回復(fù) 2022-05-12
?
守著一只汪

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

第一步:了解數(shù)據(jù)。

您沒(méi)有一張數(shù)據(jù)地圖,您有數(shù)據(jù)地圖的層次結(jié)構(gòu)。

上圖:將鞋碼映射到“細(xì)節(jié)”圖

詳細(xì)信息圖:將顏色映射到價(jià)格


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

添加回答

舉報(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)