当前位置: 首页 > 知识库问答 >
问题:

列表中是否有任何reverse_iterator,只是为了逆转列表?(首选Java8流解决方案)[重复]

暴博远
2023-03-14

我想知道在像ArrayList这样的列表实现中是否有某种反向迭代器(比如c)

有Java8流解决方案吗?


共有3个答案

禄俊逸
2023-03-14

是的,java中有一个反向迭代选项。下面的代码工作正常。

ArrayList<Integer> al = new ArrayList<>();
al.add(1);
al.add(2);
al.add(3);
al.add(4);

ListIterator<Integer> itr = al.listIterator(al.size());

System.out.println("Printing from last element ");
while (itr.hasPrevious()) {
    System.out.println(itr.previous());
}
幸弘扬
2023-03-14

可以反转列表的另一种方法是使用集合。反向

ArrayList<Integer> a = new ArrayList<>(); // assign some values here
a.forEach(System.out::println); // actual order
Collections.reverse(a);
a.forEach(System.out::println); // reverse order
米树
2023-03-14

java中有列表迭代器https://www.journaldev.com/13457/java-listiterator

// Substitute appropriate type.
ArrayList<...> a = new ArrayList<...>();

// Add elements to list.

// Generate an iterator. Start just after the last element.
ListIterator li = a.listIterator(a.size());

// Iterate in reverse.
while(li.hasPrevious()) {
  System.out.println(li.previous());
}
 类似资料:
  • 如何使用stream转换下面的代码而不使用for each循环。 getAllSubjects()返回所有列表,每个主题都有。所有列表应合并为。 需要从中获取 对象模型:

  • 我正在寻找一种解决方案,它不涉及在任何东西中缓冲数据(收集器、另一个列表、数组等,因为它们复制容器是浪费的),或者使用(因为它修改列表)。 到目前为止,我在这里看到的最简洁的方法是实现我自己版本的,即并反向遍历列表,或者实现一个并对其使用。 注这个问题不同于Java8的流反转顺序:另一个问题询问如何反转一个流(这在一般情况下是不可能的),答案是以某种方式反转源代码(我不想这么做),然后流反转的源代

  • 我想知道检查列表是否为空的最佳方法是什么。在我的Stream中,我调用两次。它有效,但我不知道它是否正确?它看起来有点难看: 当列表为空并且没有找到任何项目时,我必须抛出错误

  • 问题内容: 我正在尝试比较两个列表,如果第二个列表中有第一个列表中的任何值,则只打印一条消息。 在此示例中,我要对进行求值,因为两个列表中都包含5。这行不通,而且我不确定比较这两个列表的最简单方法。 问题答案: 您可以用很多方法解决。一个很容易理解的方法就是只使用一个循环。 一个更紧凑的方法是使用和: 更好的是,可以将其替换为: 您还可以使用集合:

  • 我有一个lambda表达式,我想在其中创建一个对象列表,但我得到了错误 错误 我希望作为lambda表达式的返回类型。我怎样才能做到呢?

  • 问题内容: 我正在写一个脚本,将做一些绘图。我希望它绘制几个数据系列,每个数据系列都有其独特的线条样式(不是颜色)。我可以轻松地遍历列表,但是python中已经有这样的列表了吗? 问题答案: 根据文档,您可以通过执行以下操作找到它们: 您可以使用标记做同样的事情 编辑:在最新版本中,仍然有相同的样式,但是您可以改变点/线之间的间隔。