Я создаю программу лотереи, в которой я хочу сравнить выигрышные номера с номерами игроков, и, если они совпадают, они выигрывают приз. Я использовал count для этого в методе match (), но при попытке сравнить два массива - getWinningNumbers () и getNumbers (), которые принадлежат другим классам PLAYER и WINNINGNUMBERS, возникает ошибка. Я получаю ошибку «фактические и формальные параметры различаются по длине», но я не уверен, как это исправить. Я использую связанные списки также впервые. Любая помощь приветствуется.

Часть кода, с которой у меня возникли проблемы, находится в методе match () в классе лотереи.

public void matches() {
        PLAYER currentPlayer = pHead;
        int count = 0;
        for(int i = 0; i<6; i++) {
            for(int j = 0; j< 6; j++) {
                if (win.getWinningNumbers(i) == currentPlayer.getNumbers(j)) {
                    count++;
                }
            }
        }

``````````````````````````````````````````````````````````````````````````
1
sarah 19 Фев 2020 в 02:03

2 ответа

Лучший ответ

Измените следующий фрагмент в matches():

if (win.getWinningNumbers(i) == currentPlayer.getNumbers(j)) {
                count++;
            }

К

if (win.getWinningNumbers()[i] == currentPlayer.getNumbers()[j]) {
                count++;
            }
0
Bibek Khadka 19 Фев 2020 в 08:14

Может быть, этот пример поможет вам немного:

List<Integer> winningNumber = new LinkedList<>(Arrays.asList(3, 9, 15, 1, 11, 18));
List<Integer> playerNumbers = new LinkedList<>(Arrays.asList(2, 8, 15, 7, 11, 9));

matches(winningNumber, playerNumbers);

private static void matches(List<Integer> winningNumbers, List<Integer> playerNumbers) {
    if(winningNumbers.size() != playerNumbers.size()) {
        System.out.println("winning numbers and player numbers differ in size");
    }
    int counter = 0;
    for(int i = 0; i < winningNumbers.size(); i++) {
        if(winningNumbers.get(i) == playerNumbers.get(i)) {
            counter++;
        }
    }
    System.out.println("Number of matches in position: " + counter);

    // if the position of match is not important
    long matches = winningNumbers.stream()
            .filter(playerNumbers::contains)
            .count();
    System.out.println("Number of matches: " + matches);
}

Количество совпадений в позиции: 2

Количество матчей: 3

0
falknis 19 Фев 2020 в 07:28