首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每个循环Java的可迭代反转

每个循环Java的可迭代反转
EN

Stack Overflow用户
提问于 2019-10-05 11:11:15
回答 2查看 289关注 0票数 2

我想知道是否有一种方法可以在Java中反向遍历Iterable。

代码语言:javascript
运行
复制
Iterable<DataSnapshot> snapShotIterator = dataSnapshot.getChildren();

for (DataSnapshot doc : snapShotIterator) {
    BlogPost blogPost = doc.getValue(BlogPost.class);
    blog_list.add(blogPost);
}

上面是我试图以相反顺序遍历的代码,是否有像集合一样的Iterables的反向函数?

提前感谢!

亨俊

EN

回答 2

Stack Overflow用户

发布于 2019-10-05 19:30:15

您可以使用Android Studio替换为"For Loop“,然后”反转它“。

代码语言:javascript
运行
复制
        ArrayList<String> list = new ArrayList<>();

        list.add("Hello");
        list.add("World");

        // Iterate forwards
        for (String string : list) {
            //
        }

这是一个普通的迭代。

现在,如果您将自己放在for语句的顶部并按alt-enter组合键(在Linux/Windows上,不记得macOS快捷键)...你会得到:

然后,如果您再次执行此操作(alt-enter),您现在可以选择反转循环:

它看起来像这样:

代码语言:javascript
运行
复制
        for (int i = list.size() - 1; i >= 0; i--) {
            String string = list.get(i);
        }

显然,这没有考虑到你有一个" Iterator“,但是你得到了这个想法,以防你想要直接迭代集合,而不是求助于Iterator接口。

票数 2
EN

Stack Overflow用户

发布于 2019-10-05 17:19:32

基本上,您可以通过遍历它并将其值存储在反向列表中来反向迭代,然后遍历该列表,

您必须首先遍历iterable才能以相反的顺序进行迭代

您可以使用org.apache.commons.collections.iterators来完成此操作,而无需自己实现

ReverseListIterator reverseListIterator = new ReverseListIterator(list);

当然,您还可以使用许多其他库

有关更多信息,请访问here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58245039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档