У меня есть List<Document> listOfDocuments = new ArrayList<>() объектов.
Вот сами объекты:
book (author, title, publisher, annotation, text)
article (author, title, journal, year, text)
wiki (link, title, text)
List listOfDocuments = new ArrayList<>();
Мне нужно найти объекты, у которых будут совпадать title и/или text.
Все объекты наследуются от класса Document.
Проблема - я не понимаю, как пройтись по всем документам и их полями. Нужно создать какой-то цикл или есть какой-то метод?
for (int i = 0; i < list.size(); ++i) {
for (int k = i + 1; k < list.size(); ++k) {
if (list[i].title == list[k].title ||
list[i].text == list[k].text) {
++count; //нашли пару
}
}
}
Код работает при условии, что вы вынесли все поля в класс Document, иначе полиформизм не позволит нам обратится к этим полям. Так же поля лучше сделать private и написать соответствующие get методы.
Да, если пользоваться стандартными средствами языка программирования, то циклом:
for (Document item : listOfDocuments) {
// проверка item.title и item.text
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники