本帖最后由 地狱里的帅灵魂 于 2015-9-3 22:49 编辑
[fly][sup]搞定这个集合就及格了[/sup][/fly]
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
/**
* 步骤:
* a: 创建一个牌盒使用Map集合存储
* b: 定义一个ArrayList存储每一张牌对应的索引
* c: 定义一个int类型的变量int index = 0 ;
* d: 定义花色数组和数字数组
* e: 遍历数组生成指定的牌,把牌添加到牌盒中,并同时存储索引
* f: 洗牌 , 洗的是索引对应的集合
* g: 发牌 , 发的也是索引,只不过我们需要使用TreeSet集合存储索引(因为可以排序)
* h: 看牌
*/
public class PokerDemo2 {
public static void main(String[] args) {
// 创建一个牌盒使用Map集合存储
HashMap<Integer , String> pokerBox = new HashMap<Integer , String>() ;
// 定义一个ArrayList存储每一张牌对应的索引
ArrayList<Integer> indexs = new ArrayList<Integer>() ;
// 定义一个int类型的值
int index = 0 ;
// 定义花色数组
String[] colors = {"♥" , "♠" , "♣" , "♦"} ;
// 定义数字数组
String[] nums = {"3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" ,"J" , "Q" , "K" , "A" , "2"} ;
// 生成牌
for(String num : nums) {
for(String color : colors) {
// 牌
String poker = color.concat(num) ;
// 把这个牌添加到牌盒中
pokerBox.put(index, poker) ;
// 把索引添加到indexs中
indexs.add(index) ;
// 索引+1
index++ ;
}
}
// 添加大小王
pokerBox.put(index, "小王") ;
indexs.add(index) ;
index++ ;
pokerBox.put(index, "大王") ;
indexs.add(index) ;
// 洗牌
Collections.shuffle(indexs) ;
// 发牌
// 定义四个集合
TreeSet<Integer> zhourunfaSet = new TreeSet<Integer>() ;
TreeSet<Integer> zhouxingxingSet = new TreeSet<Integer>() ;
TreeSet<Integer> huileiyuSet = new TreeSet<Integer>() ;
TreeSet<Integer> dipaiSet = new TreeSet<Integer>() ;
for(int x = 0 ; x < indexs.size() ; x++) {
if(x >= indexs.size() - 3){
dipaiSet.add(indexs.get(x)) ;
}else if(x % 3 == 0) {
zhourunfaSet.add(indexs.get(x)) ;
}else if(x % 3 == 1) {
zhouxingxingSet.add(indexs.get(x)) ;
}else if(x % 3 == 2) {
huileiyuSet.add(indexs.get(x)) ;
}
}
// 看牌
lookPoker("周润发" , zhourunfaSet , pokerBox) ;
lookPoker("周星星" , zhouxingxingSet , pokerBox) ;
lookPoker("刘德华" , huileiyuSet , pokerBox) ;
lookPoker("底牌" , dipaiSet , pokerBox) ;
}
public static void lookPoker(String name , TreeSet<Integer> set , HashMap<Integer , String> pokerBox) {
System.out.print(name + ":\t");
for(Integer i : set) {
System.out.print(pokerBox.get(i) + "\t");
}
System.out.println();
}
}
|
|