Bir listede ters liste görünümü olmasını istiyorum (listede bir alt liste List#sublist
görünümü sağlar gibi). Bu işlevi sağlayan bazı işlevler var mı?
Listenin herhangi bir kopyasını almak veya listeyi değiştirmek istemiyorum.
Bu durumda bir listede en azından ters bir yineleyici alabilsem yeterli olurdu.
Ayrıca, bunu kendim nasıl uygulayacağımı biliyorum. Sadece Java'nın zaten böyle bir şey sağlayıp sağlamadığını soruyorum.
Demo uygulaması:
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(); }
};
}
};
}
Sadece bazı List
uygulamaların descendingIterator()
ihtiyacım olan şey olduğunu öğrendim. Genel bir uygulama olmamasına rağmen List
. Bu biraz garip çünkü gördüğüm uygulama LinkedList
herhangi biriyle çalışmak için yeterince genel List
.
Collections.reverse(list)