用java在1到100000之间生成1000个不重复的数并排序存入数组中,求大神帮忙!

2025-01-03 16:41:03
推荐回答(4个)
回答1:

import java.util.Arrays;
import java.util.Random;
public class Test {
public static void main(String[] args) {
Random ran = new Random();
int[] arr = new int[1000];
// 生成1000个不重复的随机数保存到数组
outer:for (int i = 0; i < 1000; i++) {
// 生成1-100000的随机数
int num = ran.nextInt(100000)+1;
// 判断数组中是否有重复数字
for (int j = 0; j < arr.length; j++) {
if(arr[i]==0)
break;
if(arr[i]==num){
// 如果存在重复数字
continue outer;
}
}
arr[i] = num;
}
// 进行排序
Arrays.sort(arr);

System.out.println(Arrays.toString(arr));
}
}

回答2:

import java.util.*;
public class DD {
private HashSet set=new HashSet();
private Integer[] l=new Integer[1000];
public void initAndSort(int size){
for(int i=0;i int el=(int)(Math.random()*100000+1);//随机生成
if(!set.add(new Integer(el))) i--;//HashSet里面,调用add方法,如果添加的元素已存在,则会返回false且不会添加进去
}
l=set.toArray(l);
Arrays.sort(l); //排序
}

public void printList(){
int k=0;
for(int i:l){
k++;
System.out.print(i+" ");
if(k%100==0) System.out.println();
}
}

public static void main(String args[]){
DD d=new DD();
d.initAndSort(1000);
d.printList();
}
}

回答3:

import java.util.*;
import java.io.*;
import java.util.Scanner;

public class test12 {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {

final int max = 100000;

Random rand = new Random();
Set set = new TreeSet();

while(set.size() < 1000){
set.add(Integer.valueOf(rand.nextInt(max)+1));
}

int[] resultAry = new int[1000] ;

Iterator ite = set.iterator();

int i = 0;
while(ite.hasNext()){
int value = ((Integer)ite.next()).intValue();
resultAry[i++] = value;
System.out.println(value);
}

}
}

回答4:

import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class Test {
public static void main(String[] args) {
Set set = new TreeSet();
Random random = new Random();
while (set.size() < 1000) {
set.add(random.nextInt(99999) + 1);
}
System.out.println(set);
}
}