我正在做一个分配,我必须搜索TreeMap中的键(映射到它们被发现的文件。基本上,这个TreeMap是一个反转索引),它以一个查询单词开始,程序在查询文件中。但是,为了提高效率,我们的教授不希望在查找以查询词开头的键时遍历TreeMap中的所有键,而是希望我们只遍历我们需要遍历的键。例如,如果查询词以C开头,那么我们应该只遍历以C开头的键。有关如何处理这个问题的任何想法?如何遍历TreeMap的一部分?
0
A
回答
1
使用TreeMap的subMap()
方法来获取SortedMap,其中只包含您想要检查的键的范围。然后遍历SortedMap。
0
下面是基本实现什么@ottomeister建议:
public class Tester{
public static void main(String a[]){
TreeMap<CustomObject,String> tm = new TreeMap<CustomObject,String>();
tm.put(new CustomObject(4,"abc"),"abc");
tm.put(new CustomObject(7,"bcd"),"bcd");
tm.put(new CustomObject(25,"cde"),"cde");
tm.put(new CustomObject(18,"def"),"def");
tm.put(new CustomObject(2,"efg"),"efg");
tm.put(new CustomObject(8,"fgh"),"fgh");
tm.put(new CustomObject(3,"aab"),"aab");
tm.put(new CustomObject(13,"aab"),"abb");
Map<CustomObject, String> sub = tm.subMap(new CustomObject(9,""),new CustomObject(20,""));
for(Map.Entry<CustomObject,String> entry : sub.entrySet()) {
CustomObject key = entry.getKey();
String value = entry.getValue();
System.out.println(key.getId() + " => " + value);
}
}
}
class CustomObject implements Comparable<CustomObject>{
private int id;
private String Name;
CustomObject(int id, String Name){
this.id = id;
this.Name = Name;
}
@Override
public int compareTo(@NotNull CustomObject o) {
return this.id - o.id;
}
public int getId(){
return this.id;
}
}
输出: 13 => ABB 18 =>高清
相关问题
- 1. 如何遍历一个TreeMap直到一个特定的键?
- 2. 阻止jQuery遍历文档的部分
- 3. 遍历java中的大部分列表
- 4. 遍历ejs部分中的JSON对象
- 5. 消耗串的部分,而遍历它
- 6. AST树的遍历特定部分
- 7. 如何遍历一个pyspark.sql.Column?
- 8. 如何遍历一个DataTable
- 9. jQuery遍历一个表格的一部分
- 10. 如何遍历Swift中字典的特定部分?
- 11. 如何遍历这个复杂的数据结构的一部分?
- 12. Python:遍历列表的一部分以查找素数
- 13. Rails 5 - 遍历视图数组的一部分
- 14. 如何部分和渐进地遍历JavaScript对象?
- 15. 如何遍历MultiKeyMap?
- 16. 如何遍历scalaz
- 17. 如何遍历int [] []?
- 18. 如何遍历Btree?
- 19. 如何遍历QStringList
- 20. 如何遍历System.Windows.SystemParameters?
- 21. 如何遍历priority_queue?
- 22. 如何遍历文件中的一行?
- 23. 遍历树遍历
- 24. Sparql - 遍历顶部(最宽)
- 25. 如何遍历一个N叉树
- 26. 如何遍历一个对象?
- 27. TFS - 如何遍历一个LinkCollection对象?
- 28. 你如何遍历一棵树?
- 29. 如何使用scrapy遍历下一页?
- 30. 如何动态遍历一个包?
我想你的意思是在Java TreeMap的?你能更准确地描述TreeMap的关键吗?你也可以更具体地说“只有我们需要的钥匙”吗?但是,通常情况下,TreeMap只能完全迭代。 – nplatis 2012-04-21 23:12:03
是的,Java TreeMap。对不起,这些键是TreeMap中的字符串类型,所以我只想遍历以与查询词相同的字母开头的键。根据我的教授,有许多方法可以遍历TreeMap的一部分,但我试图用这种方法来处理它(假设它是可能的)。这有助于澄清吗? – maxicecil21 2012-04-21 23:20:17