如何迭代LinkedHashSet
從最後一項到第一項的項目?Java LinkedHashSet向後迭代
17
A
回答
19
如果你想繼續使用集合,你可以使用以下方法:如果你是罰款使用數組,而不是
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。
7
呃,假設你的意思LinkedHashSet ...
我會用toArray,只是使用反向for循環。
可能有更好的方法來做到這一點,但這應該工作。 toArray
保證任何順序被保存
如果這組作出任何保證,以什麼責令其元素 按其迭代器返回,這種方法必須返回在 同一順序的元素。
喜歡的東西
Set<MyType> mySet = new LinkedHashSet();
...
MyType[] asArray = mySet.toArray();
for (int i = asArray.length - 1; i>=0; i--){
..
}
+0
這可以工作,但是效率很低,因爲它將設置... – fig
-7
根據JavaDoc:「此鏈接列表定義迭代排序,這是在其中元件被插入到該組(插入順序)的順序。」
所以你可以簡單地說:
LinkedHashSet<Integer> numbers = new LinkedHashSet<Integer>();
numbers.add(1);
numbers.add(2);
numbers.add(33);
numbers.add(44);
numbers.add(108);
for (Integer i : numbers) {
System.out.println(i);
}
+1
「從最後一個複製到第一個」。 – hvgotcodes
5
這是另一種方式:
LinkedHashSet<T> set = ...
List<T> list = new ArrayList<>(set);
Collections.reverse(list);
for(T item : list){
...
}
2
如果你真正的意思LinkedHashSet,你可以把元素融入到一個ArrayList,然後使用ArrayList的的ListIterator。
ListIterator<T> l = new ArrayList<T>(yourLinkedHashList).listIterator();
// ListIterator can iterate in reverse
while(l.hasPrevious()) {
T obj = l.previous();
}
相關問題
- 1. 向後迭代C++
- 2. 迭代向前和向後
- 3. 迭代循環向後?
- 4. 什麼接口代表的插入順序LinkedHashSet迭代
- 5. 在Python中向前和向後迭代
- 6. 爲什麼LinkedHashSet的迭代時間不依賴於其容量?
- 7. java LinkedHashSet檢索值
- 8. 向量迭代
- 9. 的Java地圖迭代使用地圖中地圖後迭代
- 10. for-each循環迭代是向後
- 11. 迭代通過XQuery的順序向後
- 12. 迭代一個哈希向後JS
- 13. 如何迭代向後範圍?
- 14. 在Python中向後迭代字典
- 15. 迭代一個向後的QList
- 16. C++迭代和反向迭代
- 17. java arraylist迭代
- 18. Java:迭代器
- 19. 反向迭代LinkedHashMap
- 20. 迭代流逆向
- 21. 迭代爲向量
- 22. 向量迭代器
- 23. 在反向中迭代ConcurrentSkipListMap
- 24. 輸入迭代器+輸出迭代器+ X =前向迭代器
- 25. Java - 迭代鏈表
- 26. Java PrimeFaces - DualListModel迭代
- 27. Java迭代集合
- 28. 迭代在Java中
- 29. Java HashMap迭代器
- 30. 堆迭代器java
爲什麼在Java Collection Framework中不包括它。 LinkedHashSet保持FIFO的順序,所以一個將訂單轉換爲LIFO的實用程序應該在那裏,當需要維持插入順序的同時,我們可能需要以相反的順序進行迭代,這似乎是非常方便的。在我的項目中,有一段時間我需要這個。不幸的是,我必須使用List作爲中介來利用Collections.reverse()實用程序。這不骯髒! – Bhavesh