Sobes.tech
Middle
44

/** * Авторлардын китебинин тегдеринин тизмесин кайтарат, белгиленген идентификаторлордун тизмеси аркылуу көрсөтүлгөн авторлор үчүн * @param authors авторлордун тизмеси * @param searchAuthorIds алынган китебинин тегдерин алуу үчүн авторлордун идентификаторлорунун тизмеси * @return көрсөтүлгөн авторлордун китебинин тегдеринин тизмеси */ public static List<Tag> getTagsOfAuthorsBooks(List<Author> authors, List<String> searchAuthorIds) { return authors.stream() .filter(a -> searchAuthorIds.contains(a.id)) .flatMap(a -> a.books.stream()) .flatMap(b -> b.tags.stream()) .collect(Collectors.toList()); }

Кайсыл жерде компаниялар сурады
экзон

AIден жооп

sobes.tech AI

Данный метод getTagsOfAuthorsBooks принимает два параметра:

  • authors — список объектов Author.
  • searchAuthorIds — список идентификаторов авторов, теги книг которых нужно получить.

Он возвращает список тегов (List<Tag>) всех книг авторов, чьи идентификаторы содержатся в searchAuthorIds.

Как это работает:

  1. Фильтрует список авторов, оставляя только тех, у кого id есть в searchAuthorIds.
  2. Для каждого такого автора получает поток его книг.
  3. Для каждой книги получает поток тегов.
  4. Собирает все теги в один список.

Таким образом, метод эффективно извлекает все теги книг указанных авторов.

Пример использования:

List<Tag> tags = getTagsOfAuthorsBooks(allAuthors, Arrays.asList("author1", "author3"));

Это вернёт все теги книг авторов с id "author1" и "author3".