如何从最后一个项目到第一个项目遍历LinkedHashSet的项目?
发布于 2012-05-25 00:58:22
如果您想继续使用集合,可以使用以下方法:
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。
发布于 2012-05-25 00:53:52
呃假设你指的是LinkedHashSet..。
我会使用toArray,而只使用一个reverse for循环。
也许有一种更好的方法可以做到这一点,但这应该是可行的。toArray保证任何顺序都会被保留
如果此集合保证其迭代器返回其元素的顺序,则此方法必须以相同的顺序返回元素。
就像这样
Set<MyType> mySet = new LinkedHashSet();
...
MyType[] asArray = mySet.toArray();
for (int i = asArray.length - 1; i>=0; i--){
..
}发布于 2012-05-25 01:01:59
这是另一种方式:
LinkedHashSet<T> set = ...
List<T> list = new ArrayList<>(set);
Collections.reverse(list);
for( T item : list ){
...
}https://stackoverflow.com/questions/10741902
复制相似问题