Java基础数组练习 注释里的代码输出有重复数据?


package create;

import java.util.Random;
import java.util.Scanner;

public class ArrayDemo6 {
    public static void main(String[] args) {
        int[] name = new int[5];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < name.length; i++) {
            System.out.println("请输入您的工号");

            name[i] = sc.nextInt();

        }

        Random r = new Random();
        for (int i = 0; i < name.length; i++) {
            /*int temp = name[r.nextInt(5)];
            name[r.nextInt(5)] = name[i];
            name[i] = temp;*/
            int index = r.nextInt(5);
            int temp = name[index];
            name[index] = name[i];
            name[i] = temp;

        }
        for (int i = 0; i < name.length; i++) {
            System.out.print(name[i] + " ");
        }
    }
}

img

生成的随机数索引一样,就会有相同的数据。

随机数不代表不重复啊。只是代表你无法预测而已。不重复需要你自己写代码来判断处理才行。