Java创建int类型数组,数组元素之间互不相等

创建一个长度为6的int类型的数组,要求数组元素取值为1~30之间,并且两两之间不等。(用两种方法进行解决)

方法一

package com.java.arraysdemo;
import java.util.Random;
//创建一个长度为6的int类型的数组,要求数组元素取值为1~30之间,并且两两之间不等。
//方法一
public class ArrayDemo {
          
   
    public static void main(String[] args) {
          
   
        int [] array = new int[6];
        for (int i = 0; i < array.length; i++) {
          
   
            array[i] = (int)(Math.random()*30+1);
            for (int j = 0; j < i; j++) {
          
      //借助双层循环,单层循环容易发生数组越界问题,一维数组就可以解决问题。
                if(array[i] == array[j]){
          
      //确保两两之间不相等,如若相等,i--,重新赋值。
                    i--;
                    break;
                }
            }
        }
        System.out.println("所创建的数组为:");
        for (int i = 0; i < 6; i++) {
          
   
            System.out.print(array[i]+"	");
        }
    }
}

方法二

package com.java.arraysdemo;
import java.util.Random;
//创建一个长度为6的int类型的数组,要求数组元素取值为1~30之间,并且两两之间不等。
//方法二
public class ArrayDemo4 {
          
   
    public static void main(String[] args) {
          
   
        int [] array = new int[6];
        for (int i = 0; i < array.length; i++) {
          
   
            array[i] = (int)(Math.random()*30+1);
            boolean flag = false;
            while(true){
          
       //构建一个while循环
                for (int j = 0; j < i; j++) {
          
      //两两比较
                    if(array[i] == array[j]){
          
   
                        flag = true;
                        break;
                    }
                }
                if(flag){
          
      //如若相等,则重新赋值。
                    array[i] = (int)(Math.random()*30)+1;
                    flag = false;
                    continue;
                }
                break;
            }
        }
        System.out.println("所创建数组为:");
        for (int i = 0; i < array.length; i++) {
          
   
            System.out.print(array[i]+"	");
        }
    }
}
经验分享 程序员 微信小程序 职场和发展