天蓝色的彼岸_123
2015-06-02 16:28
如何生成3个不重复的1000以内的随机正整数作为学生Id,大家有没有好的建议啊?
public void testSort4(){
List<Student> studentList=new ArrayList<Student>();
List<Integer> randomList=new ArrayList<Integer>();
Random random=new Random();
int k;
for(int i=0;i<3;i++){
do{
k=random.nextInt(1000);
}while(randomList.contains(k));
randomList.add(k);
}
studentList.add(new Student(randomList.get(0)+"","luci"));
studentList.add(new Student(randomList.get(1)+"","nibi"));
studentList.add(new Student(randomList.get(2)+"","good"));
System.out.println("*****排序前******");
for(Student stu:studentList){
System.out.println("学生"+stu.name );
}
System.out.println("*****排序后*********");
Collections.sort(studentList);
for(Student stu:studentList){
System.out.println("学生"+stu.name+" "+stu.id);
}
//用new StudentComparator()来接收return的值。
Collections.sort(studentList,new StudentComparator());
System.out.println("****根据姓名排序*******");
for(Student stu:studentList){
System.out.println("根据姓名:"+stu.id+" "+stu.name);
}
}
hash表判断重复。。。
3个不重复的1000以内正整数,保存在数组里然后输出出来:
public static void main(String[] args){
Random r=new Random();
int[] s=new int[3];
Boolean flag=true;
s[0]=r.nextInt(1000);
int i=1;
while(flag&&i<3)
{
flag=false;
s[i]=r.nextInt(1000); //产生0到100的随机数
if(s[i]==s[i-1])
break;
else
{
i++;
flag=true;
}
}
for(int j=0;j<3;j++)
System.out.println(s[j]);
}
循环生成3次,每生成一次和前一次的判断一次,重复的跳过。
Java入门第三季
409792 学习 · 4340 问题
相似问题