Есть ли способ проверить обнаружение повторного ввода для хэш-набора (Java)? - PullRequest
1 голос
/ 17 января 2020

Я пытаюсь сделать игру палача следующим образом:

 public void guessLetter(String letter) {
    HashSet<String> guessedLettersA = new HashSet<>();
    guessedLettersA.add(letter);

    for (String guessedLetterA : guessedLettersA) {
        this.guessedLetters += guessedLetterA;
    }

    if (!this.word.contains(letter)) {
        this.numberOfFaults++;
    }
}

public boolean letterCheck() {
    if ( = false ) {
        System.out.println("You have already guessed this letter!");
    }

В настоящее время я работаю в методе letterCheck и хочу посмотреть, является ли один из входов повторным, и сообщить пользователю, что его догадка не считается. Я предполагаю, что он не будет составлять их ошибки или считаться другим предположением, потому что он никогда не добавляется в хэш-набор. Поэтому, где я борюсь с тем, как я делаю, как я хочу, я думал об использовании встроенного способа, которым хэш-набор возвращает false, чтобы обнаружить это, но я понятия не имею, как реализовать это, так как он должен ссылаться на другой метод, и я не знаю, как сделать строковый хэш-набор, возвращающий логическое значение. Я был бы очень признателен за любую помощь, спасибо.

1 Ответ

2 голосов
/ 17 января 2020

API add вернет false для существующего значения (которое он не может добавить к Set), поэтому с вашим условием можно справиться

boolean letterCheck = guessedLettersA.add(letter);
if(!letterCheck) {
    System.out.println("You have already guessed this letter!");
}

Примечание : вызов этого блока зависит исключительно от дизайна вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...