java中随机产生int数组的排序问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 10:39:38
比如一个for语句循环10次产生10个100以内的随机数,要求数字不为0和不重复。存在数组aa[i]中,请问怎么对这个int型数组由小到大排序,我试过用arrays.sort(aa)排好像不行,排出来的都是0和重复数。请问怎么个思路来排这个数列?谢谢了
int i=0,k=0;
for( i=0;i<10;i++){
aa[i]=rand.nextInt(100);
for(k=0;k<i;k++){
if(aa[i]==0)
aa[i]=rand.nextInt(100);
if(aa[i]==aa[k])
aa[i]=rand.nextInt(100);}

import java.util.Arrays;
import java.util.Random;

public class D {
public static void main(String[] args) {
int i = 0, k = 0;
String[] aa = new String[10];
Random rand = new Random();
for (i = 0; i < 10; i++) {
aa[i] = String.valueOf(rand.nextInt(100));
for (k = 0; k < i; k++) {
if (Integer.parseInt(aa[i]) == 0)
aa[i] = String.valueOf(rand.nextInt(100));
if (aa[i] == aa[k])
aa[i] = String.valueOf(rand.nextInt(100));
}
}
Arrays.sort(aa);
for(int l = 0;l<aa.length;l++){
System.out.print(aa[l]+"\t");
}
}
}

Arrays.sort(aa);
该方法升序排序肯定不出问题 主要在于你那生成aa数组错了

循环生成aa有问题

思路应该是先用HashSet去除重复的数字
然后使用Arrays类提供的排序方法排序

package test;

import java.util.HashSet;
import java.util.Arrays;

public class RandomTest {
public static void main(String[] a