С 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));