双色球问题,怎么可以输入重复的红球

package 双色球;

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

public class Test {
    public static void main(String[] args) {
        int[] luckNumbers=createLuckNumber();
        printArray(luckNumbers);

        int[] userNumber=userInputNumbers();
        printArray(userNumber);

        judge(luckNumbers,userNumber);


    }

    private static void judge(int[] luckNumbers, int[] userNumber) {

        int redHitNumbers=0;
        int blueHitNumber=0;

        for (int i=0;i< userNumber.length-1;i++){
            for (int j=0;j< luckNumbers.length-1;j++){
                if (userNumber[i]==luckNumbers[j]){
                    redHitNumbers++;
                    break;
                }

            }
        }
        blueHitNumber=luckNumbers[6]==userNumber[6]?1:0;

        System.out.println("中奖号码是:");
        printArray(luckNumbers);
        System.out.println("投注号码是:");
        printArray(userNumber);
        System.out.println("命中红球:"+redHitNumbers+"个");
        System.out.println(blueHitNumber==1?"有":"没有"+"命中蓝球");
        
        if(blueHitNumber==1&&redHitNumbers<3){
            System.out.println("中5元");
        } else if (blueHitNumber==1&&redHitNumbers==3||blueHitNumber==0&&redHitNumbers==4) {
            System.out.println("中100元");
        } else if (blueHitNumber==1&&redHitNumbers==4||blueHitNumber==0&&redHitNumbers==5) {
            System.out.println("中200元");
        }else if (blueHitNumber==1&&redHitNumbers==5) {
            System.out.println("中3000元");
        }else if (blueHitNumber==0&&redHitNumbers==6) {
            System.out.println("中500万元");
        }else if (blueHitNumber==1&&redHitNumbers==6) {
            System.out.println("中1000万元");
        }
    }


    public static void printArray(int[] arr){
        for (int i=0;i< arr.length;i++){
            System.out.print(arr[i]+"\t");
        }
        System.out.println();//换行
    }

    private static int[] userInputNumbers() {
        int[] numbers=new int[7];
        Scanner sc=new Scanner(System.in);
        for (int i=0;i-1;i++){
            System.out.println("请输入第"+(i+1)+"个红球号码(1-33,要求不重复):");
            int data=sc.nextInt();
            numbers[i]=data;
        }

        System.out.println("请输入蓝球号码(1-16):");
        numbers[numbers.length-1]=sc.nextInt();

        return numbers;
    }


    public static int[] createLuckNumber(){
        //定义一个动态数组
        int[] numbers = new int[7];

        Random r = new Random();
        for (int i = 0; i < numbers.length - 1; i++) {
            while (true) {
                int data = r.nextInt(33) + 1;

                boolean flag = true;
                for (int j = 0; j < i; j++) {
                    if (numbers[j] == data) {
                        flag = false;
                        break;
                    }
                }
                if (flag) {
                    numbers[i] = data;
                    break;
                }
            }
        }

        numbers[numbers.length-1]=r.nextInt(16)+1;
        return numbers;
    }
}

6 14 17 3 28 32 16
请输入第1个红球号码(1-33,要求不重复):
6
请输入第2个红球号码(1-33,要求不重复):
6
请输入第3个红球号码(1-33,要求不重复):
6
请输入第4个红球号码(1-33,要求不重复):
6
请输入第5个红球号码(1-33,要求不重复):
6
请输入第6个红球号码(1-33,要求不重复):
6
请输入蓝球号码(1-16):
6
6 6 6 6 6 6 6
中奖号码是:
6 14 17 3 28 32 16
投注号码是:
6 6 6 6 6 6 6
命中红球:6个
没有命中蓝球
中500万元

我怎么修改让命中红球只有1个而不是6个

将6个红球保存到数组,然后判断是否在数组

    for (int i=0;i< userNumber.length-1;i++){
        for (int j=0;j< luckNumbers.length-1;j++){
            if (userNumber[i]==luckNumbers[j]){
                redHitNumbers++;
                break;

这个地方不要用两个循环,一个for就够了,要一一对应才行,userNumber[i]==luckNumbers[i],都用i循环。