Mit Guava können Sie Funktionen wie - verwenden
private enum StudentToId implements Function<Student, Integer> {
INSTANCE;
@Override
public Integer apply(Student input) {
return input.getId();
}
}
und Sie können diese Funktion verwenden, um die Liste der Schüler in IDs wie - zu konvertieren.
Lists.transform(studentList, StudentToId.INSTANCE);
Sicherlich wird es eine Schleife ausführen, um alle IDs zu extrahieren, aber denken Sie daran, dass Guavenmethoden die Ansicht zurückgeben und die Funktion nur angewendet wird, wenn Sie versuchen, über List<Integer>
die Schleife zu iterieren. Wenn Sie nicht iterieren, wird die Schleife niemals angewendet .
Hinweis: Denken Sie daran , das der Ansicht ist , und wenn Sie mehrere Male zu wiederholen wollen wird es besser sein , den Inhalt in einem anderen zu kopieren , List<Integer>
wie
ImmutableList.copyOf(Iterables.transform(students, StudentToId.INSTANCE));