私はTreeMapのキーを検索しなければならない割り当てをしています(TreeMapが見つかったファイルにマップされていますが、このツリーマップは逆インデックスです)。クエリファイル内のプログラム。しかし、効率を上げるために、私の教授は、クエリワードで始まるキーを探すときにTreeMapのすべてのキーを繰り返し処理するのではなく、反復処理が必要なキーだけを反復したいと思っています。たとえば、クエリの単語がCで始まる場合は、Cで始まるキーだけを反復する必要があります。これにアプローチする方法のアイデアはありますか?TreeMapのPORTIONを反復処理する方法は?
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 => DEF
関連する問題
- 1. TreeMapを反復処理する方法は?
- 2. カーソルの反復処理方法
- 3. 反復処理
- 4. 処理(反復処理)
- 5. struts2のオブジェクトのコレクションを反復処理する方法は?
- 6. Numpyの配列の列を反復処理する方法は?
- 7. StringTemplate - リスト内のリストを反復処理する方法は?
- 8. データグリッドの行をプログラムで反復処理する方法は?
- 9. vb.netでオブジェクトのプロパティを反復処理する方法は?
- 10. このハッシュを反復処理する方法は?
- 11. stringmapのキーを反復処理する方法は?
- 12. Emberjs:ArrayProxyコンテンツを反復処理する最良の方法は?
- 13. eclipseテンプレートのメソッドパラメータを反復処理する方法は?
- 14. 反復処理グルーヴィーリスト
- 15. Pythonでdefaultdict(list)を反復処理する方法は?
- 16. priority_queueを反復処理する方法は?
- 17. Rスクリプトでファイル名を反復処理する方法は?
- 18. TypeScriptでSetを反復処理する方法は?
- 19. C++でユニコード文字を反復処理する方法は?
- 20. レコードフィールドを反復処理する方法は?
- 21. boost :: fusionシーケンスを反復処理する方法は?
- 22. PowershellでXMLを反復処理する方法は?
- 23. LinkedList要素を逆順に反復処理する方法は?
- 24. ウィークマップを反復処理する方法は?
- 25. ルアでテーブルを反復処理する方法は?
- 26. VaadinでComboBoxを反復処理する方法は?
- 27. javascriptで(キー、値)を反復処理する方法は?
- 28. ブーストプロパティツリーを反復処理する方法は?
- 29. asp.netリピータの最後の反復処理を別の方法で処理する
- 30. 反復処理は、スキーム
私はあなたは、JavaのTreeMapを意味すると仮定しますか? TreeMapのキーをより正確に記述できますか?また、「必要な鍵だけ」についてもっと具体的にすることができますか?しかし、一般的には、TreeMapは完全に完全にしか反復することができません。 – nplatis
はい、Java TreeMapです。申し訳ありませんが、これらのキーはTreeMapのString型です。したがって、クエリワードと同じ文字で始まるキーを反復したいだけです。私の教授によると、TreeMapの部分だけを繰り返す方法がありますが、私はそれを可能な限り前提としています。これは、 – maxicecil21