如果我有一個包含字符串和雙精度的樹形圖。無論如何,從地圖檢索前10個鍵?迭代固定次數的樹形圖
2
A
回答
4
獲取通過treeMap.entrySet().iterator()
迭代器,如果你想要的鍵/值對或treeMap.keySet().iterator()
如果你只是關心的鑰匙,然後調用iterator.next()
10倍或只要iterator.hasNext()
回報true
。
List<Map.Entry<String, Double>> firstTen = new ArrayList<Map.Entry<String, Double>>(10);
Iterator<String, Double> iterator = treeMap.entrySet().iterator();
for (int i = 0; iterator.hasNext() && i < 10; i++) {
firstTen.add(iterator.next());
}
1
不在JDK中,但在第三方庫中有這樣的方法。
1
由於TreeMap
是NavigableMap
,你應該看一看在接口中的方法。沒有什麼可以讓你選擇第一個n
的,但你可以用鑰匙小於給定鍵等選擇所有條目
否則,我只想用一個Iterator
後n
迭代停止。
0
裹在列表中entrySet()
並創建一個subList()
:
SortedMap<String,Double> treeMap = new TreeMap<String, Double>();
List<Entry<String, Double>> firstTen =
new ArrayList<Map.Entry<String,Double>>(treeMap.entrySet())
.subList(0, 10);
for(Entry<String, Double> entry : firstTen){
// do something with entries
}
缺點:整個地圖將被複制到列表中。
0
它與dkarp和sean提供的代碼片段一起工作。但是,它也適用於DJClayworth的建議。以下是我如何解決它:
c=sorted_map.keySet();
Iterator itr=c.iterator();
String s="";
while (i<iteratesize&&itr.hasNext()){
s=(String) itr.next();
System.out.println(s);
s="";
i++;
}
非常感謝大家的幫助。對此,我真的非常感激。
相關問題
- 1. GTK樹形固定寬度
- 2. 迭代遍歷樹形結構
- 3. SystemVerilog的約束,固定值每n次迭代
- 4. 迭代樹走
- 5. 迭代從樹
- 6. 樹迭代C++
- 7. 是否迭代樹映射的值並通過此迭代器移除它們修改樹形圖?
- 8. 迭代通過兩個樹形圖在Java
- 9. 迭代地創建圖形
- 10. ArangoDB圖maxDepth - 迭代次數過多
- 11. 在JSP中迭代指定次數
- 12. 更簡潔的方式來迭代該樹形圖數據結構中JSTL
- 13. xslt-1.0迭代固定值列表
- 14. Matlab圖形固定高度
- 15. 在每次迭代完成後再次迭代函數
- 16. 迭代TreeSet的 - 從樹狀
- 17. Java中的樹迭代器
- 18. 爲通用樹定義迭代器
- 19. SML:跟蹤迭代次數
- 20. 迭代層次
- 21. 每次迭代
- 22. 多次迭代
- 23. 自定義樹形視圖
- 24. 迭代讀取固定數量的行到R
- 25. 圖。迭代迭代
- 26. Pi迭代,顯示用戶輸入的pi的迭代次數
- 27. 獲取scipy的gmres迭代方法的迭代次數
- 28. 將迭代函數定義爲迭代?
- 29. 轉換樹插入到迭代函數
- 30. 使用迭代器模式的n-tree樹的預定/後序迭代遍歷
爲什麼你不能在迭代器上調用next()十次? – DJClayworth 2011-01-06 17:54:52
它的工作!非常感謝。 – 2011-01-06 18:46:32