集合框架(模拟斗地主洗牌和发牌并对牌进行排序的代码实现)
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class Demo_Poker {
public static void main(String[] args) {
//1.创建一副扑克牌
String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
String[] color = {"黑桃","红心","方块","梅花"};
HashMap<Integer, String> hm = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
int index = 0;
for (String s1 : num) {
for (String s2 : color) {
hm.put(index, s2.concat(s1));
list.add(index);
index++;
}
}
hm.put(index, "小王");
list.add(index);
index++;
hm.put(index, "大王");
list.add(index);
//洗牌
Collections.shuffle(list);
//发牌
TreeSet<Integer> p1 = new TreeSet<>();
TreeSet<Integer> p2 = new TreeSet<>();
TreeSet<Integer> p3 = new TreeSet<>();
TreeSet<Integer> dp = new TreeSet<>();
for (int i = 0; i < list.size(); i++) {
if(i >= list.size() - 3){
dp.add(list.get(i));
}else if(i % 3 == 0){
p1.add(list.get(i));
}else if(i % 3 == 2){
p2.add(list.get(i));
}else {
p3.add(list.get(i));
}
}
//看牌
lookPoker(hm, p1, "1号");
lookPoker(hm, p2, "2号");
lookPoker(hm, p3, "3号");
lookPoker(hm, dp, "底牌");
}
/*
* 看牌
* 1.返回值类型 void
* 2.参数列表HashMap,TreeSet,String
* */
public static void lookPoker(HashMap<Integer, String> hm,TreeSet<Integer> ts,String name) {
System.out.print(name+"的牌是:");
for(Integer i : ts) {
System.out.print(hm.get(i)+" ");
}
System.out.println();
}
}
运行截图: