集合练习
1.只发牌 不排序
package 模拟斗地主;
import java.util.ArrayList;
import java.util.Collections;
public class PokerDemo {
public static void main(String[] args) {
//创建牌盒,也就是集合对象,用ArrayList集合实现
ArrayList array=new ArrayList();
//往牌盒里装盒
//定义花色数组
String []colors= {"♦","♣","♥","♠"};
//定义点数数组
String []numbers= {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
for(String color:colors) {
for(String number:numbers) {
array.add(color+number);
}
}
array.add("小王");
array.add("大王");
Collections.shuffle(array);
//System.out.println(array);
//发牌,也就是遍历集合
ArrayList lqxArray=new ArrayList();
ArrayList lyArray=new ArrayList();
ArrayList fqyArray=new ArrayList();
ArrayList dpArray=new ArrayList();
for(int i=0;i=array.size()-3) {
dpArray.add(poker);
}else if(i%3==0) {
lqxArray.add(poker);
}else if(i%3==1) {
lyArray.add(poker);
}else if(i%3==2) {
fqyArray.add(poker);
}
}
lookPoker("林青霞", lqxArray);
lookPoker("柳岩", lyArray);
lookPoker("风清扬", fqyArray);
lookPoker("底牌", dpArray);
}
public static void lookPoker(String name,ArrayList array) {
System.out.println(name+"的牌是:");
for(String poker:array) {
System.out.print(poker+" ");
}
System.out.println();
}
}
2.发牌 并排序
package 模拟斗地主;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class PokerDemo2 {
public static void main(String[] args) {
//创建HashMap,键是编号,值是牌
HashMap hm=new HashMap();
//创建ArrayList,存储编号
ArrayListarray=new ArrayList();
//定义花色数组
String []colors= {"♦","♣","♥","♠"};
//定义点数数组
String []numbers= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int index=0;
for(String number:numbers) {
for(String color:colors) {
hm.put(index, color+number);
array.add(index);
index++;
}
}
hm.put(index, "小王");
array.add(index);
index++;
hm.put(index, "大王");
array.add(index);
//洗牌
Collections.shuffle(array);
TreeSet lqxSet=new TreeSet();
TreeSet lySet=new TreeSet();
TreeSet fqySet=new TreeSet();
TreeSet dpSet=new TreeSet();
for(int i=0;i=array.size()-3) {
dpSet.add(x);
}else if(x%3==0) {
lqxSet.add(x);
}else if(x%3==1) {
lySet.add(x);
}
else if(x%3==2) {
fqySet.add(x);
}
}
lookPoker("林青霞", lqxSet, hm);
lookPoker("柳岩", lySet, hm);
lookPoker("风清扬", fqySet, hm);
lookPoker("底牌", dpSet, hm);
}
//定义方法拿牌
public static void lookPoker(String name,TreeSetts,HashMaphm) {
System.out.println(name+"的牌是:");
for(Integer key:ts) {
String poker=hm.get(key);
System.out.print(poker+" ");
}
System.out.println();
}
}



