62,614
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
Random r = new Random();
LinkedList<Integer> array = new LinkedList<Integer>();
for (int i = 0; i < 52; i++) {
array.add(i);
}
int puke[] = new int[52];
int i = 0 ;
while(array.size() > 0){
int index = r.nextInt(array.size());
puke[i++] = array.remove(index);
}
System.out.println(Arrays.toString(puke));
}
用链表保存最开始的数字,比较合适,因为移除对象效率很高。
设计链表保存 1 - 52 之间的数字 。
LinkList pukeList ;
第一步:实例化一个 int[52] 的数组
第二步:
int index = 0 ;
whlie(pukeList.length > 0 ){
int i = Random.nextInt(pukeList.length); // 去数组长度里面的随机数
int[index++] = pukeList.remove(i);
}
public class RandomPuke {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for(int i=1;i<=52;i++){
list.add(i); // 添加到数组列表去。
}
Collections.shuffle(list); // 让列表内容随机重组
int[] card =new int[52];
for(int s=0;s<list.size();s++){
card[s]=list.get(s); // 放到数组里
}
System.out.println(Arrays.toString(card)); //打印出来
}
}
import java.util.Random;
public class CartDemo1 {
public static void main(String[] args) {
int[] cards = new CartDemo1().getCards();
for (int i : cards) {
System.out.print(i+" ");
}
}
public int[] getCards(){
boolean[] isGet = new boolean[52];
int[] cards = new int[52];
Random r = new Random();
int index = 0;
while(true){
int i = r.nextInt(52);
if(isGet[i]){
continue;
}
isGet[i] = true;
cards[index++] = i+1;
if(index == 52){
break;
}
}
return cards;
}
}
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class CartDemo {
public static void main(String[] args) {
int[] cards = new CartDemo().getCards();
for (int i : cards) {
System.out.print(i+" ");
}
}
public int[] getCards(){
List<Integer> list = new LinkedList<Integer>();
int index = 1;
for (int i = 0; i < 52; i++) {
list.add(index++);
}
Collections.shuffle(list);
int[] cards = new int[52];
for (int i = 0; i < cards.length; i++) {
cards[i] = list.remove(0);
}
return cards;
}
}