package cn.itcast.collection;
import java.util.LinkedList;
import java.util.Random;
/*使用LinkedList模拟洗牌功能*/
//扑克牌类
class Poker {
String color;// 花色
String num;// 点数
public Poker(String color, String num) {
this.color = color;
this.num = num;
}
@Override
public String toString() {
return "{" + color + num + "}";
}
}
public class Demo3 {
public static void main(String[] args) {
LinkedList poker = createPoker();
shufflePoker(poker);
showPoker(poker);
}
// 洗牌功能
public static void shufflePoker(LinkedList poker) {
// 创建随机数
Random random = new Random();
for (int i = 0; i < 100; i++) {
// 随机产生2个索引值,并交换两张牌的顺序
int index1 = random.nextInt(poker.size());
int index2 = random.nextInt(poker.size());
Poker poker1 = (Poker) poker.get(index1);
Poker poker2 = (Poker) poker.get(index2);
poker.set(index1, poker2);
poker.set(index2, poker1);
}
}
// 生产扑克牌
public static LinkedList createPoker() {
String[] strColor = new String[] { "黑桃", "红桃", "梅花", "方块" };
String[] strNum = new String[] { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
LinkedList list = new LinkedList();
for (int i = 0; i < strColor.length; i++) {
for (int j = 0; j < strNum.length; j++) {
list.add(new Poker(strColor[i], strNum[j]));
}
}
return list;
}
// 显示扑克牌
public static void showPoker(LinkedList list) {
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
if (i % 10 == 9) {
System.out.println();
}
}
}
}