Я хочу проверить, List
содержит ли объект, который имеет поле с определенным значением. Теперь я мог использовать цикл, чтобы пройти и проверить, но мне было любопытно, был ли какой-нибудь более эффективный код.
Что-то вроде;
if(list.contains(new Object().setName("John"))){
//Do some stuff
}
Я знаю, что приведенный выше код ничего не делает, он просто показывает, чего я пытаюсь достичь.
Кроме того, просто для пояснения, причина, по которой я не хочу использовать простой цикл, заключается в том, что этот код в настоящее время будет идти внутри цикла, который находится внутри цикла, который находится внутри цикла. Для удобства чтения я не хочу продолжать добавлять петли в эти петли. Так что я задавался вопросом, были ли какие-нибудь простые (иш) альтернативы.
equals(Object)
метод вашего пользовательского объекта?
for(Person p:list) if (p.getName().equals("John") return true; return false;
Боюсь, в Java вы не найдете более лаконичного способа.
p.equals(p)
должно быть правдой, поэтому я запутался в том, чего ты пытаешься достичь. Надеюсь, если вы зададите новый вопрос, вы сможете получить лучшую помощь.