import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Porker {
public static void main(String[] args){
List<String> Decor = new ArrayList<>(4);//4种花色
List<String> Number = new ArrayList<>(13);//每种花色有1-k张扑克牌
List<List<String>> Deck = new ArrayList<>();//一副扑克牌
Decor.add("Spade");//黑桃
Decor.add("Heart");//红心
Decor.add("Club");//梅花
Decor.add("Diamond");//方片
for(int i=2;i<11;i++){
Number.add(i+" ");
}
Number.add("A");
Number.add("J");
Number.add("O");
Number.add("K");
// Porker.add(Decor);
// Porker.add(Number);
// System.out.println(Porker);
for(String s: Decor){
for(String m: Number){
List<String> Porker = new ArrayList<>();
Porker.add(s);
Porker.add(m);
Deck.add(Porker);
}
}
System.out.println("52张牌分别为"+Deck);
System.out.println("以下分别为4人分到的牌:");
int count = 1;
int randomSeriesLength = 13;
// List<String> a = new ArrayList<>();
do {
Collections.shuffle(Deck);//随机打乱Deck顺序
List<List<String>> randomSeries = Deck.subList(0,randomSeriesLength);
System.out.println(randomSeries);
count++;
// for(int i=0;i<randomSeriesLength;i++){
// //本来想使用equals()函数比较randomSeries列表与Deck列表中的元素,但是报错。
// a = randomSeries.get(i);
// Deck.remove(a);
// }
Deck.removeAll(randomSeries);//因randomSeries列表中的Porker已被抽走,所以remove
}while(count<=4);
}
}
将花色存储在Dector列表中,卡牌上的数字存储在Number(A,2,...,10,J,O,K)列表中。众所周知,扑克牌是54张,但题意表明不算大小王,那现在有52张,也就是黑桃、红心、梅花、方片各13张,卡牌上的数字分别是A,2,...,10,J,O,K。使用List<List<String>>存储卡牌的花色和数字信息。