首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java LinkedHashSet反向迭代

Java LinkedHashSet反向迭代
EN

Stack Overflow用户
提问于 2012-05-25 00:51:09
回答 5查看 23.5K关注 0票数 25

如何从最后一个项目到第一个项目遍历LinkedHashSet的项目?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-05-25 00:58:22

如果您想继续使用集合,可以使用以下方法:

代码语言:javascript
复制
LinkedHashSet<T> set = ...

LinkedList<T> list = new LinkedList<>(set);
Iterator<T> itr = list.descendingIterator();
while(itr.hasNext()) {
    T item = itr.next();
    // do something
}

如果您不介意使用数组,那么可以看看hvgotcodes' answer

票数 28
EN

Stack Overflow用户

发布于 2012-05-25 00:53:52

呃假设你指的是LinkedHashSet..。

我会使用toArray,而只使用一个reverse for循环。

也许有一种更好的方法可以做到这一点,但这应该是可行的。toArray保证任何顺序都会被保留

如果此集合保证其迭代器返回其元素的顺序,则此方法必须以相同的顺序返回元素。

就像这样

代码语言:javascript
复制
Set<MyType> mySet = new LinkedHashSet();
...
MyType[] asArray = mySet.toArray();

for (int i = asArray.length - 1; i>=0; i--){
..
}
票数 7
EN

Stack Overflow用户

发布于 2012-05-25 01:01:59

这是另一种方式:

代码语言:javascript
复制
LinkedHashSet<T> set = ...

List<T> list = new ArrayList<>(set);
Collections.reverse(list);

for( T item : list ){
   ...
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10741902

复制
相关文章

相似问题

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