三个不重复的整数还有更简洁的方法嘛?

来源:6-8 学生选课--- 实现学生序列排序

songqi12so

2018-08-30 12:03

// 三个不重复的整数
        while (i == j)
        {
            j = random.nextInt(1000);
        }
        while (i == k || k == j)
        {
            k = random.nextInt(1000);
        }

        studentList.add(new Student(i + "", "Mike"));
        studentList.add(new Student(j + "", "Angela"));
        studentList.add(new Student(k + "", "Lucy"));
       



我感觉这个实现太长了,谁有更简洁的方法来实现

写回答 关注

8回答

  • 慕码人8582911
    2019-10-19 12:26:38

    如图,加油http://img.mukewang.com/5daa90790001cce508500438.jpg

  • zooeaa
    2019-05-24 08:57:19
    	/**
    	* 3.对其他类型泛型的List进行排序,以Student为例。
    	*/
    	public void testSort3() {
    	    List<Student> studentList = new ArrayList<Student>();
    	    Random random = new Random();
    	    
    	    int f = random.nextInt(1000);
    	    studentList.add(new Student(f + "", "Mike"));
    	    
    	    do
    	        f = random.nextInt(1000);
    	    while (studentList.contains(f));
    	    studentList.add(new Student(f + "", "Zom"));
    	    
    	    do
    	        f = random.nextInt(1000);
    	    while (studentList.contains(f));
    	    studentList.add(new Student(f + "", "Jason"));
    	    
    	    System.out.println("---------HOME----------");
    	    for (Student student : studentList) {
    	        System.out.println("学生:" + student.getId() + "," + student.getName());
    	    }
    	    
    	    System.out.println("---------END----------");
    	    Collections.sort(studentList);
    	    for (Student student : studentList) {
    	        System.out.println("学生:" + student.getId() + "," + student.getName());
    	    }
    	}
    	
    	不知道我这个算不算简单,
    	使用了ArrayList的contains方法判断元素是否重复,
    	元素重复返回true。


    qq_将就_...

    mike的已经随机生成了数字,下面循环又随机生成,你这边有些问题吧

    2019-09-03 11:28:27

    共 2 条回复 >

  • 墨锦
    2019-02-19 20:48:16

          public void testSort3(){

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

         List<Student> studentList = new ArrayList<Student>();

         Random random=new Random();

         Integer k;

            for(int i=0;i<3;i++){

           do{ k=random.nextInt(100);

         

         }while(integerList.contains(k));

        integerList.add(k);

          }

            

         studentList.add(new Student(integerList.get(0)+"","Mike"));

         studentList.add(new Student(integerList.get(1)+"","Angela"));

         studentList.add(new Student(integerList.get(2)+"","Lucy"));

       脑子笨,把testSort1合并进来用了

    墨锦 回复霸气小肆毛

    你好老铁,请检查是否自己在项目中创建了学生类。

    2019-03-14 15:21:32

    共 2 条回复 >

  • 五岁麻瓜少年
    2018-11-26 17:13:32
    int i;
    int j;
    int k;
    do {
         i = random.nextInt(10);
         j = random.nextInt(10);
         k = random.nextInt(10);
    }while (i==j||i==k||j==k);

    不知道我的这个是不是简单易懂呢

    qq_将就_...

    你这个分别定义,如果产生上百个,就不能用这个方式啊亲?

    2019-09-03 11:26:13

    共 1 条回复 >

  • 慕沐4503986
    2018-10-16 13:21:39
    public void test(){
    Set<Integer>set=new HashSet<Integer>();
    Random random=new Random();
    while(set.size()<3){
    int i=random.nextInt(1000);
    set.add(i);
    }
    这个就是利用set的不重复性来创建三个不重复的整数。
    但是我不知道该怎么样才能将数字带入替换student的ID属性


  • 慕粉7269117
    2018-09-21 17:51:22

    或许可以利用hashSet不可重复的特性

  • 慕哥3549570
    2018-09-15 16:45:10

    while(set1.size()<3){

    set1.add(random.nextInt(1000));

    }

  • songqi12so
    2018-08-30 12:24:31

    当然最好是不影响原来的代码的情况下。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题