Я почти закончил с программой, которая собирает входные данные пользователя (ключевые слова) и отображает их. В этом отношении он работает, но мне также нужно предотвратить добавление дублирующихся ключевых слов в список с помощью условного оператора if. Я знаю, что я на правильном пути, но у меня возникли проблемы с обдумыванием синтаксиса и использованием логического значения для сравнения введенного ключевого слова с существующим ArrayList.
Я знаю, что есть такие методы, как Hash / Set, но я бы хотел сделать это с условным оператором, прежде чем перейти к другим методам. Кажется, что каждый ответ, который я нашел в поиске, объясняет использование хэша.
Спасибо!
ОБНОВЛЕНИЕ: Я отредактировал мой код в соответствии с тем, что у меня есть в настоящее время, основываясь на ответе @Jacob, и это то, что я искал, так что спасибо за ответ. Но он по-прежнему не удаляет дубликаты, как будто он не проверяет массив и не пропускает право на alreadyExists == false
условный оператор. Или я неправильно сравниваю значения?
import java.util.*;
public class KeywordData {
private ArrayList<Keyword> keywords = new ArrayList<Keyword>();
public void create() {
InputHelper inputHelper = new InputHelper();
String prompt = "";
boolean isTrue = true;
while (isTrue) {
prompt = inputHelper.getUserInput("Enter a string, otherwise type 'n' to exit:");
if (!prompt.equals("n")) {
Keyword keyword = new Keyword();
keyword.setUserKeyword(prompt);
boolean alreadyExists = false;
for (Keyword keyword1 : keywords) {
if (keyword1.equals(keyword)) {
alreadyExists = true;
}
}
if (alreadyExists == false) {
keywords.add(keyword);
} else {
System.out.println("You already added that word");
}
} else {
break;
}
}
}
public void displayKeywords() {
System.out.println();
System.out.println("********** Your unique user keywords **********");
for (Keyword keyword : keywords) {
keyword.display();
}
System.out.println();
}
}