public boolean contains(Object data)
{
Node temp = new Node(data);
Node current = head.getNext();
for(int i = 0; i < size(); i++)
{
//System.out.println(current.getData());
if(temp.getData() == current.getData())
{
System.out.println("true");
return true;
}
else
{
current = current.getNext();
}
}
return false;
}
Мой код выше, и он возвращает false, несмотря ни на что. Если он находит истинное условие, он печатает «true», и он все равно возвращает false. Что я здесь делаю неправильно? У меня точно такой же функции, за исключением того, что возвращается целое число, а не логическое значение, и он отлично работает с тем же методом/code.4Почему моя функция всегда возвращает false, даже если она находит возвращаемое значение true раньше?
Моя функция, которая делает то же самое и работает отлично:
public int indexOf(Object data)
{
Node temp = new Node(data);
Node current = head.getNext();
for(int i = 0; i < size(); i++)
{
if(temp.getData() == current.getData())
{
return i;
}
current = current.getNext();
}
return -1;
}
Вам нужно будет добавить больше контекста. Мы не можем просто догадываться. Предоставьте полностью воспроизводимый пример. –
@SotiriosDelimanolis Все, что я делаю, это 'if (LL.contains (" something ") == true) // print' – user12831239
Как вы сравниваете строки в Java? Я сомневаюсь, что печатает '' true ''. –