Java基础练习——读心术(扑克牌魔术——21张扑克牌)–代码简化版 代码 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class CardMagic { public static int count = 0;//用来统计重复询问观众的次数,第三次询问之后 public static void main(String[] args) { //1.准备54张牌 //新建一个集合存储54张牌并打乱顺序 ArrayList<String> pokers = new ArrayList<>(); //直接定义两个数组并赋值,一个存四种花色,一个存13张牌的值(3,4,5,6,7,8,9,10,J,Q,K,A,2) String[] kind = { "♥","♠","♦","♣"}; String[] number = { "3","4","5","6","7","8","9","10","J","Q","K","A","2"}; //先存大王小王到pokers集合中 pokers.add("大王"); pokers.add("小王"); //组装两个集合的数据,生成带花色的52张牌(可以用普通for循环,也可以用增强for循环foreach) for (int i = 0; i < kind.length; i++) { for (int j = 0; j < 13; j++) { pokers.add(kind[i]+number[j]); } } System.out.println("这里有54张牌:"+pokers);//顺序打印 //洗牌--打乱pokers集合里的元素顺序 Collections.shuffle(pokers);//打乱顺序 //再新建一个集合,用来存储随机拿出的21张牌(伪随机:其实是拿出前21张牌,但是pokers集合是随机打乱顺序的,所以每次运行程序,拿出的前21张牌也就不一样且乱序了) ArrayList<String> list21