解题思路:
- 创建HashMap集合,键为序号,值为牌
- 创建ArrayList集合,存储序号
- 创建花色和牌序号的数组
- 装盒
- 洗牌,Collection.shuffle();
- 发牌,TreeSet,排序
- 定义看牌方法,
- 调用看牌方法
实现代码:
package MoNi;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
/*
* 1. 创建HashMap集合,键为序号,值为牌
2. 创建ArrayList集合,存储序号
3. 创建花色和牌序号的数组
4. 装盒
5. 洗牌,Collection.shuffle();
6. 发牌,TreeSet,排序
7. 定义看牌方法,
8. 调用看牌方法
**/
public class New_ListDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建集合
HashMap<Integer,String> map = new HashMap<Integer,String>();
ArrayList<Integer> arry = new ArrayList<Integer>();
//创建数组
String[] colors = {"♦","*","#","¥"};
String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int index = 0;
//装盒
for(String number:num) {
for(String color:colors) {
map.put(index, color+number);
arry.add(index);
index++;
}
}
map.put(index,"大王");
arry.add(index);
index++;
map.put(index, "小王");
arry.add(index);
//洗牌
Collections.shuffle(arry);
//发牌
TreeSet<Integer> xws = new TreeSet<Integer>();
TreeSet<Integer> yqh = new TreeSet<Integer>();
TreeSet<Integer> jyl = new TreeSet<Integer>();
TreeSet<Integer> dp = new TreeSet<Integer>();
for(int i =0;i<arry.size();i++) {
int card = arry.get(i);
if(i>=arry.size()-3) {
dp.add(card);
}else if(i%3 == 0) {
xws.add(card);
}else if(i%3 ==1) {
yqh.add(card);
}else if(i%3 == 2) {
jyl.add(card);
}
}
//看牌
lookPai("纤维素",xws,map);
lookPai("舆情会",yqh,map);
lookPai("季铵盐",jyl,map);
lookPai("底牌",dp,map);
}
public static void lookPai(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm) {
System.out.print(name+"的牌是:");
for(Integer i :ts) {
String s = hm.get(i);
System.out.print(s+" ");
}
System.out.println();
}
}
结果:
纤维素的牌是:♦3 #3 ¥4 ♦5 #5 ♦6 *6 #7 ¥7 ♦8 #10 ¥10 ♦J *Q #A *2 大王
舆情会的牌是:*3 #4 *5 ¥5 *7 ¥8 #9 ¥9 ♦10 *10 #J ¥J ♦K ¥K *A ¥2 小王
季铵盐的牌是:♦4 *4 #6 ♦7 *8 #8 ♦9 *9 *J ♦Q #Q ¥Q *K #K ♦A ♦2 #2
底牌的牌是:¥3 ¥6 ¥A