У меня проблемы с продолжением работы с кодом, я приведу простой пример (хотя он будет немного сложнее, этот простой код тоже не будет работать должным образом).
class Sign {
private String char;
private Integer freq;
public Sign(String c) {
this.char = c;
}
@Override
public boolean equals(Object o) {
String check = (String)o;
return check.equals(this.char);
}
@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + this.char.hashCode();
return hash;
}
}
Я предполагаю, что всегда будет метод String в равных по причинам простоты.Также есть некоторый hashCode (), чтобы убедиться, что метод contains () будет работать, и вот сам тест:
ArrayList<Sign> queueOfSigns = new ArrayList<>();
Sign test = new Sign("C");
String c = "C";
queueOfSigns.add(test);
if(queueOfSigns.contains("C"))
System.out.println("I am here!");
Независимо от того, что этот простой тестовый код всегда возвращает false в этом случае - так "Я здесь "сообщение никогда не появляется.Я пробовал несколько разных подходов к моему коду, но это было потому, что идея этого состоит в том, чтобы получить отдельные символы из текста String и проверить, присутствует ли один символ в ArrayList.Тем не менее - без того, чтобы этот простой тест не работал должным образом, я не могу двигаться дальше, поэтому я хотел бы спросить вас - что мне не хватает.На самом деле я впервые использую методы equals () и hashCode (), чтобы мой собственный объект работал должным образом с методом contains ().