用java生成一个1到10十个数字随机排列的数组

方法是:建立另一个arraylist,里面是1-10十个数字,从里面随机抽出一个数字,加入需要生成的数组中,循环十次。求JAVA程序

代码如下

import java.util.ArrayList;

public class ArrayListToAry {
public static void main(String[] args) {
//数组 
int[] ary = new int[10];
//集合
ArrayList<Integer> list = new ArrayList<Integer>();
//给集合添加1~10的数字
for (int i = 1; i < 11; i++) {
list.add(i);
}
//循环10次,随即抽取集合的数字给数组
for (int i = 0; i < 10; i++) {
ary[i] = list.get((int)(Math.random()*10));
}
///输出数组的元素
System.out.print("数组的元素:");
for (int i = 0; i < ary.length; i++) {
System.out.print(ary[i]+" ");
}
}
}

追问

谢谢你的回答~如果是需要数组里面元素是不重复1-10个数字,该怎么修改啊?

追答

效果如图:

代码如下

public class ArrayListToAry {
public static void main(String[] args) {
// 数组
int[] ary = new int[10];
// 集合 ,临时集合temp存放1~10个数字
ArrayList<Integer> temp = new ArrayList<Integer>();
//list集合存放需要的数字
ArrayList<Integer> list = new ArrayList<Integer>();
// 给集合添加1~10的数字
for (int i = 1; i < 11; i++) {
temp.add(i);
}
// while循环 随即抽取集合的数字给数组
int index = 0;
while (true) {
if(list.size()==10){
break;
}
int it = temp.get((int) (Math.random() * 10));
//如果list存在这个数组就继续循环
if (list.contains(it)) {
continue;
} else {
//如果list不存在这个数字,那么就把这个数字给数组,并且在list中加入这个数字
ary[index] = it;
list.add(it);
index++;
}
}
// /输出数组的元素
System.out.print("数组的元素:");
for (int i = 0; i < ary.length; i++) {
System.out.print(ary[i] + " ");
}
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-22
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class baiduTest1
{
public static void main(String[] args)
{
List<Integer> arrayList1 = new ArrayList<Integer>();
for(int i = 0; i < 10; i++)
{
arrayList1.add(i+1);
}

List<Integer> arrayList2 = new ArrayList<Integer>();

for(int i = 0; i < 10; i++)
{
Integer x = new Random().nextInt(10);

arrayList2.add(i,arrayList1.get(x));
}
System.out.println(arrayList1);
System.out.println(arrayList2);
}
}

不重复是这样的。

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class baiduTest1
{
public static void main(String[] args)
{
List<Integer> arrayList1 = new ArrayList<Integer>();
for(int i = 0; i < 10; i++)
{
arrayList1.add(i+1);
}

List<Integer> arrayList2 = new ArrayList<Integer>();

while(arrayList2.size() < 10)
{
Integer x = new Random().nextInt(10);

int i = 0;

if(arrayList2.indexOf(arrayList1.get(x)) < 0)
{
arrayList2.add(i,arrayList1.get(x));
}

i += 1;
}
System.out.println(arrayList1);
System.out.println(arrayList2);
}
}