「java洗牌数组」洗牌java代码
本篇文章给大家谈谈java洗牌数组,以及洗牌java代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、请问用java数组编写洗牌程序怎么写?我刚学java,请多指教,谢谢!!!
- 2、java里怎样打乱(洗牌)一个数组
- 3、关于洗牌算法,请用JAVA编写,定义一个数组,储存1-52以内的数,打乱顺序输出!
请问用java数组编写洗牌程序怎么写?我刚学java,请多指教,谢谢!!!
package xly04;
import java.util.Random;
public class ArrayDemo3 {
/**
* 数组应用:
* 1 随机洗牌
* 2 顺序发牌
*/
public static void main(String[] args) {
String[] cards=new String[]{"黑桃A","黑桃2","黑桃3","黑桃4",
"黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
"红桃A","红桃2","红桃3","红桃4","红桃5","红桃6","红桃7","红桃8","红桃9",
"红桃10","红桃J","红桃Q","红桃K","方块A","方块2","方块3","方块4","方块5",
"方块6","方块7","方块8","方块9","方块10","方块J","方块Q","方块K","梅花A",
"梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10",
"梅花J","梅花Q","梅花K","大王","小王"};
//Random random=new Random();.......(1)
//int index=random.nextInt(10);//[0,10) %10
//System.out.println(index);
//String card=cards[random.nextInt(cards.length)];//长度为8,随机下标[0,8)
//System.out.println(card);//随机的某张牌
for(int i=cards.length-1;i=1;i--){
int j=new Random().nextInt(i);//或者(1)不注销用int j=random.nextInt(i);
String t=cards[i];
cards[i]=cards[j];
cards[j]=t;
}
for(int i=0;icards.length;i++){
System.out.print(cards[i]+",");
}
System.out.println();//输出回车字符
//顺序发牌:顺序的将每个牌发给每个人
String[] players=new String[]{"马伊琍","文章","六六"};
//int i=0;
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
for(int i=0;icards.length;i++){
//i=0,1,2,3,4,5,6,7
String card=cards[i];//card 代表每张扑克牌
String player=players[i%players.length];
//player代表每个玩游戏的人
System.out.println(player+":"+card);
}
}
}
java里怎样打乱(洗牌)一个数组
//给你个思路:给要给随机值,该随机值在索引范围内,然后从索引值里面取元素,在该元素对应
//的位置,进行二次随机取其他元素,然后进行交换,就可以了!
//还有更简单的办法,java早就想到了这一点,在集合工具里面就提供该方法,其实他内部也是
//这样的思路,用随机值进行交换!
import java.util.*;
public class ArrayListTest {
public static void main(String[] args) {
Integer[] arr=new Integer[10];
for (int i = 0; i arr.length; i++) {
arr[i]=i+1;
}
System.out.println("\n原序:"+Arrays.toString(arr)+"\n");//原数组!
ListInteger list=Arrays.asList(arr);//借用集合帮忙排序!
for(Integer a:list) {
Collections.shuffle(list);//随机排序!
System.out.println("随机:"+Arrays.toString(arr));//排序后!
}
}
}
//数字或者数量,你可以随意修改,二维数组也可以照用!
关于洗牌算法,请用JAVA编写,定义一个数组,储存1-52以内的数,打乱顺序输出!
以下是代码,仅供参考。
package test;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
public class PokerTest {
public static void main(String[] args) {
int[] poker = new int[52];
SetInteger set = new LinkedHashSetInteger();
//定义数组poker,并赋值
for (int i = 1; i = 52; i++) {
poker[i - 1] = i;
}
//while循环向set集合里面插入poker中的数字,排除重复的数字。
while(true){
int in = new Integer((int)poker[(int) (Math.random() * 52)]);
System.out.println("添加的元素为:"+in);
set.add(in);
System.out.println("此时set元素个数为:"+set.size());
if(set.size()==52)
break;
}
//集合输出元素
for(IteratorInteger iter=set.iterator();iter.hasNext();){
System.out.print(iter.next()+"\t");
}
}
}
关于java洗牌数组和洗牌java代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。