За допомогою Guava ви можете використовувати таку функцію, як -
private enum StudentToId implements Function<Student, Integer> {
INSTANCE;
@Override
public Integer apply(Student input) {
return input.getId();
}
}
і ви можете використовувати цю функцію для перетворення списку студентів на ідентифікатори типу -
Lists.transform(studentList, StudentToId.INSTANCE);
Звичайно, він буде циклічно витягувати всі ідентифікатори, але пам'ятайте, що методи guava повертають подання, і функція застосовуватиметься лише тоді, коли ви намагаєтеся виконати ітерацію, List<Integer>
якщо ви не повторите ітерацію, вона ніколи не застосує цикл.
Примітка. Пам'ятайте, що це вигляд, і якщо ви хочете повторити кілька разів, буде краще скопіювати вміст в інший, List<Integer>
наприклад
ImmutableList.copyOf(Iterables.transform(students, StudentToId.INSTANCE));