相关疑难解决方法(0)

如何在Java列表中获得反向列表视图?

我想在列表上有一个反向列表视图(以类似的方式List#sublist提供列表上的子列表视图).是否有一些提供此功能的功能?

我不想制作任何类型的列表副本,也不想修改列表.

如果我在这种情况下至少可以在列表上获得反向迭代器就足够了.


另外,我知道如何自己实现这一点.我只是问Java是否已经提供了这样的东西.

演示实施:

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(); }                 
            };
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

我刚刚发现某些List实现具有descendingIterator()我需要的功能.虽然没有一般的这样的实现List.这有点奇怪,因为我看到的实现已经LinkedList足够通用了List.

java collections reverse iterator list

209
推荐指数
8
解决办法
25万
查看次数

标签 统计

collections ×1

iterator ×1

java ×1

list ×1

reverse ×1