「java洗牌数组」洗牌java代码

博主:adminadmin 2022-11-22 11:38:06 63

本篇文章给大家谈谈java洗牌数组,以及洗牌java代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

请问用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代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。