Tôi muốn có chế độ xem danh sách đảo ngược trong danh sách (theo cách tương tự như List#sublist
cung cấp chế độ xem danh sách phụ trong danh sách). Có một số chức năng cung cấp chức năng này?
Tôi không muốn tạo bất kỳ loại bản sao nào của danh sách cũng như không sửa đổi danh sách.
Nó sẽ là đủ nếu tôi có thể nhận được ít nhất một trình vòng lặp ngược trong danh sách trong trường hợp này.
Ngoài ra, tôi biết làm thế nào để thực hiện điều này bản thân mình. Tôi chỉ hỏi rằng Java đã cung cấp một cái gì đó như thế này chưa.
Thực hiện demo:
static <T> Iterable<T> iterableReverseList(final List<T> l) {
return new Iterable<T>() {
public Iterator<T> iterator() {
return new Iterator<T>() {
ListIterator<T> listIter = l.listIterator(l.size());
public boolean hasNext() { return listIter.hasPrevious(); }
public T next() { return listIter.previous(); }
public void remove() { listIter.remove(); }
};
}
};
}
Tôi đã phát hiện ra rằng một số List
triển khai có descendingIterator()
những gì tôi cần. Mặc dù không có thực hiện chung như vậy cho List
. Điều này là lạ vì thực hiện tôi đã thấy LinkedList
là đủ để làm việc với bất kỳ List
.
Collections.reverse(list)