我需要从数组中随机生成三张牌我有52张牌的阵列,从card1到card52
String rank[]=new String[52];
for(int i=0;i<rank.length;i++)
{
rank[i]= "card"+i;
}
Run Code Online (Sandbox Code Playgroud)
现在我需要从阵列中选择三张牌,它不应该是可重复的.
有谁能够帮我.实际上我正在做这个bt卡正在重复.请给我解决方案.
提前致谢.
Vit*_*nko 15
您可以尝试Collections.shuffle(列表列表)方法:
String rank[] = new String[52];
for (int i = 0; i < rank.length; i++) {
rank[i] = "card" + i;
}
List<String> cards = Arrays.asList(rank);
Collections.shuffle(cards);
List<String> selectedCards = cards.subList(0, 3);
Run Code Online (Sandbox Code Playgroud)
如果将数组转换为a List,则可以使用Collections.shuffle()它来随机化.然后,如果您只是获取列表的前三个条目,您将获得三张没有重复的随机卡.
List<String> ranklist = Arrays.asList(rank);
Collections.shuffle(ranklist);
String rank1 = ranklist.get(0);
String rank2 = ranklist.get(1);
String rank3 = ranklist.get(2);
Run Code Online (Sandbox Code Playgroud)