Java中的Map對象

將對象映射到其他對象的能力是一種解決問題的殺手锏列敲。

解決問題1:使用map解決Random取值次數(shù)進(jìn)行計(jì)數(shù):

//10000次中俊扭,隨機(jī)數(shù)0-20會(huì)出現(xiàn)的次數(shù)為map中的value妨退,key為當(dāng)前隨機(jī)數(shù)
public class MapRandom {
    public static void main(String[] args) {
        Random rand = new Random(47);
        Map<Integer,Integer> m = new HashMap<>();
        for(int i=0;i<10000;i++){
            int r = rand.nextInt(20);
            Integer freq = m.get(r);
            m.put(r, freq == null ? 1 : freq+1);
        }
        System.out.println(m);
    }
}

解決問題2:使用map設(shè)置復(fù)雜的數(shù)據(jù)結(jié)構(gòu)赠涮,查看擁有多個(gè)寵物的人
首先設(shè)置Pet類华弓,Cat和Mouse繼承自Pet:

public class Pet {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    Pet(String name){
        this.name = name;
    }
}

class Cat extends Pet{
    Cat(String name) {
        super(name);
    }
}

class Mouse extends Pet{
    Mouse(String name) {
        super(name);
    }
}

接下來設(shè)置Person類:

public class Person {
    private String name;
    Person(String name){
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

最后設(shè)置MapOfList類,構(gòu)造我們的數(shù)據(jù)結(jié)構(gòu)

public class MapOfList {
    public static void main(String[] args) {
        Map<Person, List<? extends Pet>> petPeople = new HashMap<>();
        petPeople.put(new Person("rainzhao"), Arrays.asList(new Cat("mao1"),new Mouse("shu1")));
        petPeople.put(new Person("zhangsan"), Arrays.asList(new Cat("mao2"),new Mouse("shu2")));
        
        for(Person person: petPeople.keySet()){
            System.out.println(person.getName() + " has:");
            for(Pet pet: petPeople.get(person)){
                System.out.println(pet.getName());
            }
        }
    }
}

/*輸出結(jié)構(gòu)為:
rainzhao has:
mao1
shu1
zhangsan has:
mao2
shu2
*/

這里解釋一下泛型中的<? extends Pet>滑废,草描?這里是代表類型不確定使用?來代替策严,當(dāng)調(diào)用時(shí)會(huì)是你所傳遞的參數(shù)類型。這里為什么不直接寫成<Pet>是因?yàn)槲覀兯鶄魅氲腖ist類型不確定饿敲,有可能是Cat也有可能是Mouse妻导,但是其實(shí)這里直接設(shè)置為<Pet>也是不會(huì)報(bào)錯(cuò)的。具體有關(guān)泛型通配符的使用請移步:通配符的使用怀各。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末倔韭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓢对,更是在濱河造成了極大的恐慌寿酌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硕蛹,死亡現(xiàn)場離奇詭異醇疼,居然都是意外死亡硕并,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門秧荆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倔毙,“玉大人,你說我怎么就攤上這事乙濒∩略撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵颁股,是天一觀的道長么库。 經(jīng)常有香客問我,道長甘有,這世上最難降的妖魔是什么诉儒? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮梧疲,結(jié)果婚禮上允睹,老公的妹妹穿的比我還像新娘。我一直安慰自己幌氮,他們只是感情好缭受,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著该互,像睡著了一般米者。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宇智,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天蔓搞,我揣著相機(jī)與錄音,去河邊找鬼随橘。 笑死喂分,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的机蔗。 我是一名探鬼主播蒲祈,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼萝嘁!你這毒婦竟也來了梆掸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤牙言,失蹤者是張志新(化名)和其女友劉穎酸钦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咱枉,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卑硫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年徒恋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拔恰。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡因谎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出颜懊,到底是詐尸還是另有隱情财岔,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布河爹,位于F島的核電站匠璧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏咸这。R本人自食惡果不足惜夷恍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媳维。 院中可真熱鬧酿雪,春花似錦、人聲如沸侄刽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽州丹。三九已至醋安,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間墓毒,已是汗流浹背吓揪。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留所计,地道東北人柠辞。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像主胧,于是被迫代替她去往敵國和親钾腺。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 多態(tài) 任何域的訪問操作都將有編譯器解析讥裤,如果某個(gè)方法是靜態(tài)的,它的行為就不具有多態(tài)性 java默認(rèn)對象的銷毀順序與...
    yueyue_projects閱讀 944評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理姻报,服務(wù)發(fā)現(xiàn)己英,斷路器,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 一:java概述:1吴旋,JDK:Java Development Kit损肛,java的開發(fā)和運(yùn)行環(huán)境厢破,java的開發(fā)工...
    ZaneInTheSun閱讀 2,650評(píng)論 0 11
  • 東風(fēng)起時(shí) 在漸暖的風(fēng)里 我悄悄爬上樹梢 這一生開始了 與陽光對話,凈化著心靈 與空氣對歌治拿,搖曳舞姿 與雨點(diǎn)相約摩泪,洗...
    光詩燃?jí)?/span>閱讀 494評(píng)論 47 48
  • 昨夜下了一場雨, 樹的枝頭掛著晶瑩劫谅, 那是一滴露珠见坑。 你瞧, 里面還有自己清晰的影子捏检, 清的山荞驴,秀的水, 藍(lán)天白云...
    萬仕君閱讀 299評(píng)論 0 0