日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java获取字典所有的key_java字典,多层字典,斗地主发牌,实例展示

發布時間:2023/12/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java获取字典所有的key_java字典,多层字典,斗地主发牌,实例展示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我們的日常工作與生活當中,java都有涉及到。它具有十分強大的功能,并且內容也極其豐富,使用頻率也是很高的,所以大家對于java的學習熱情也是十分積極的。今天就來為大家介紹java字典,多層字典,斗地主發牌的實例展示,一起來看看吧。

首先是一個簡單的介紹,如下所示:

字典 Map 存鍵值對

/       \

hashmapLinkedHashMap

數組+鏈表和數組+雙鏈表(有序)

自定義鍵對象(不能重)需要重寫鍵的hashCode()方法、equals()方法。

map實例代碼如下:import?java.util.Map;

import?java.util.Set;

public?class?Demo01

{

public?static?void?main(String[]?args)

{

Map??map?=?new?HashMap??();

map.put("a",?"12");?//添加

map.put("b",?"1");

map.put("a",?"2");?//覆蓋a的值

System.out.println(map);?//{a=2,b=1}?無順序

//String?v=map.remove("b");//刪除鍵的值?返回

//System.out.println(v);

System.out.println(map.get("a"));?//取值??沒有返回null

//?通過keyset遍歷map?增強for

//?Map不能直接用?迭代器/增強for?遍歷?需要轉Set才能用

Set??keys?=?map.keySet();?//?返回集合中所有鍵

for?(String?key:?keys)

{

String?value?=?map.get(key);?//?獲取鍵的值

System.out.println(key?+?"..."?+?value);

}

//通過Iterater

Set??keys2?=?map.keySet();

Iterator??it?=?keys2.iterator();

while?(it.hasNext())

{

String?key?=?it.next();

String?value?=?map.get(key);

System.out.println(key?+?"..."?+?value));

}

//增強for?+?entrySet方法(鍵值對對象)

Set?>?entrys?=?map.entrySet();

for?(Map.Entry??entry:?entrys)

{

String?key?=?entry.getKey();

String?value?=?entry.getValue();

System.out.println(key?+?"..."?+?value);

}

//Iterater遍歷

Set?>?entrys2?=?map.entrySet();

Iterator?>?it2?=?entrys.iterator();

while?(it2.hasNext())

{

Map.Entry??entry2?=?it2.next();

String?key2?=?entry2.getKey();

String?value2?=?entry2.getValue();

System.out.println(key2?+?"..."?+?value2);

}

}

}

Map??map?=?new?HashMap??();?//鍵內容不重

map.put(new?Student("lisi",?28),?"上海");?//?Student重寫HashCode()、equals()

多層字典實例代碼如下:HashMap?>?oracle?=?new?HashMap?>?();

HashMap??java0601?=?new?HashMap??();

java0601.put("001",?new?Person("小紅帽",?18));

java0601.put("002",?new?Person("小丸子",?20));

HashMap??java0929?=?new?HashMap??();

java0929.put("001",?new?Person("張超",?22));

java0929.put("002",?new?Person("趙玉仙",?21));

oracle.put("java0601",?java0601);

oracle.put("java0929",?java0929);

//遍歷??增強for+keyset

Set??classes?=?oracle.keySet();?//所有鍵?集合???班級名字集合

for?(String?clas:?classes)

{

HashMap??c?=?oracle.get(clas);?//獲取班級集合?值

Set??stunumbers?=?c.keySet();?//?人名集合?鍵

for?(String?num:?stunumbers)

{

Person?p?=?c.get(num);?//人名集合?值

System.out.println("班級"?+?clas?+?"學號"?+?num?+?"學生"?+?p);

}

}

斗地主發牌實例代碼如下:public?static?void?main(String[]?args)

{

//準備容器????????????????????????????????????//牌序??牌值

HashMap??pookerMap?=?new?HashMap??();

ArrayList??pookerNumer?=?new?ArrayList??();?//牌序

//準備牌

String[]?number?=?{

"2"

,?"A"

,?"K"

,?"Q"

,?"J"

,?"10"

,?"9"

,?"8"

,?"7"

,?"6"

,?"5"

,?"4"

,?"3"

};

String[]?color?=?{

"?"

,?"?"

,?"?"

,?"?"

};

int?index?=?2;

for?(String?num:?number)

{

for?(String?col:?color)

{

pookerMap.put(index,?col?+?num);?//向Map中添加??牌序:牌值

pookerNumer.add(index);?//向ArrayList添加??牌序號

index++;

}

}

//添加大小王

pookerMap.put(0,?"大王");

pookerNumer.add(0);

pookerMap.put(1,?"小王");

pookerNumer.add(1);

System.out.println(pookerMap);

//洗牌、發牌

Collections.shuffle(pookerNumer);?//打亂??ArrayList?牌序號

ArrayList??player1?=?new?ArrayList??();

ArrayList??player2?=?new?ArrayList??();

ArrayList??player3?=?new?ArrayList??();

ArrayList??bottom?=?new?ArrayList??();

for?(int?i?=?0;?i?

{?//分發??牌序號

if?(i?

{

bottom.add(pookerNumer.get(i));

}?//?前三個序號?添加?底牌

else?if?(i?%?3?==?0)

{

player1.add(pookerNumer.get(i));

}

else?if?(i?%?3?==?1)

{

player2.add(pookerNumer.get(i));

}

else?if?(i?%?3?==?2)

{

player3.add(pookerNumer.get(i));

}

}

//對三個玩家的牌?排序

Collections.sort(player1);

Collections.sort(player2);

Collections.sort(player3);

Collections.sort(bottom);

//看牌

lookPooker("玩家1",?player1,?pookerMap);?//?名稱??牌序號??字典

lookPooker("玩家2",?player2,?pookerMap);

lookPooker("玩家3",?player3,?pookerMap);

lookPooker("底牌",?bottom,?pookerMap);

}

public?static?void?lookPooker(String?name,?ArrayList??player,?HashMap??pookerMap)

{

System.out.println(name?+?":?");

for?(int?index:?player)

{

System.out.print(pookerMap.get(index)?+?"?");?//?對應字典?找出?牌序號的?值

}

System.out.println();

}

以上就是關于java字典,多層字典,斗地主發牌的主要實例展示了。如果你對java知識感興趣,想要了解更多java經典例子和常見問題,敬請關注奇Q工具網。

推薦閱讀:

總結

以上是生活随笔為你收集整理的java获取字典所有的key_java字典,多层字典,斗地主发牌,实例展示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。