Với Guava, bạn có thể sử dụng Chức năng như -
private enum StudentToId implements Function<Student, Integer> {
INSTANCE;
@Override
public Integer apply(Student input) {
return input.getId();
}
}
và bạn có thể sử dụng chức năng này để chuyển đổi Danh sách sinh viên thành các id như -
Lists.transform(studentList, StudentToId.INSTANCE);
Chắc chắn nó sẽ lặp lại để trích xuất tất cả id, nhưng hãy nhớ các phương thức ổi trả về chế độ xem và Hàm sẽ chỉ được áp dụng khi bạn cố gắng lặp lại List<Integer>
nếu bạn không lặp, nó sẽ không bao giờ áp dụng vòng lặp.
Lưu ý: Hãy nhớ đây là dạng xem và nếu bạn muốn lặp lại nhiều lần, tốt hơn là sao chép nội dung trong một số List<Integer>
như
ImmutableList.copyOf(Iterables.transform(students, StudentToId.INSTANCE));