java倒序遍历集合
时间: 2025-01-04 10:35:24 浏览: 58
### Java 中集合的逆向迭代或倒序遍历
对于 `List` 集合,Java 提供了 `ListIterator` 接口用于双向遍历列表。这使得开发者不仅能够从前到后还能从后向前访问元素[^1]。
```java
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListReverseExample {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= 6; ++i) {
list.add(i);
}
ListIterator<Integer> iterator = list.listIterator(list.size());
while (iterator.hasPrevious()) {
System.out.print(iterator.previous() + " ");
}
}
}
```
上述代码展示了如何创建一个指向列表末端之后位置的迭代器实例,并通过调用 `hasPrevious()` 和 `previous()` 方法完成逆序打印操作。
另外,在 Apache Commons Collections 库中存在名为 `ReverseListIterator` 的工具类,它能简化这一过程并提供更加便捷的方式获取反转后的迭代器对象[^2]。
当涉及到 `Map` 结构时,则可以通过先转换成条目集(entry set),然后再利用类似链表的数据结构如 `LinkedHashMap` 来保持插入顺序不变的情况下进行逆转处理[^5]:
```java
import java.util.*;
public class MapReverseExample {
public static void main(String[] args) {
LinkedHashMap<String, Integer> map = new LinkedHashMap<>(Map.of(
"A", 1,
"B", 2,
"C", 3));
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
// 反转 entry 列表
Collections.reverse(entries);
for (var entry : entries) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
```
这段程序首先构建了一个带有固定键值对关系的地图,接着把它们放入数组列表以便于后续的操作;最后借助内置函数实现了整个映射表记录次序上的颠倒效果。
阅读全文
相关推荐



















