循环5次,系统随机生成一个数,要求每输出的数不能重复,

for(int i = 0;i < 5;i++ ){
int a = (int)(Math.random*10)//
System.out.println(a);
// 要求每一次循环只输出一个,并且每输出的数不能重复

}

要求只循环5次,且每次循环都输出一个不重复的数?除非能获取随机数的时候就保证它不重复,否则好像避免不了有些循环不输出的情况。
比如:
Set nums = new HashSet<>();
for(int i = 0;i < 5;i++ ){
int a = (int)(Math.random*10)
if(nums.add(a)){
System.out.println(a);
}
}


public class TestWork {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i=0,j=0;
        int[] arr = new int[5];//动态数组的标准分配
        //数组初始化
        for(i=0;i<5;i++)
            arr[i] = -1;
        
        //生成随机数
        for( i = 0; i< 5;){
            int v = (int) (Math.random()*10);
            for( j = 0;j< i;j++)
            {
                if (v == arr[j])
                    break;
            }
            if(j == i)
            {
                arr[i] = v;
                
                i++;
            }
            
        }
        
        System.out.printf("%d %d %d %d %d",arr[0],arr[1],arr[2],arr[3],arr[4]);

    }

}

public class Test {
    public static void main(String[] args) {
        Set<Integer> exists = new HashSet<>();
        for (int i = 0; i < 5; i++) {
            while (true) {
                int a = new Random().nextInt(10);
                if (!exists.contains(a)) {
                    exists.add(a);
                    System.out.println(a);
                    break;
                }
            }
        }
    }
}

建一个集合把输出过得放进去,判断一下是否存在,存在就不输出了,不存在就输出并保存

package T;

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < 5; i++) {
            int a = (int) (Math.random() * 10);
            if (!list.contains(a)) {
                list.add(a);
                System.out.println(a);
            }
        }
    }

}


public static void main(String[] args) {
        Set<Integer> set=new HashSet<>();
        while (set.size()<5){
            int a = (int)(Math.random()*10);
            if(set.contains(a)) continue;
            set.add(a);
        }
        System.out.println("结果:"+set);
}