私はフロートに従ってソートマップを保持するための最良の方法は何JavaでSortedMap Interfaceを使用するには?
map<Float, MyObject>
を持っています。
SortedMap
が最善の答えですか? TreeMap
?どうやって使うの?
(私は一度だけマップを作成し、 myMap.put()
、myMap.get()
を使用して、頻繁にMyObject
を置き換える)SortedMapインタフェースの実装です
私はフロートに従ってソートマップを保持するための最良の方法は何JavaでSortedMap Interfaceを使用するには?
map<Float, MyObject>
を持っています。
SortedMap
が最善の答えですか? TreeMap
?どうやって使うの?
(私は一度だけマップを作成し、 myMap.put()
、myMap.get()
を使用して、頻繁にMyObject
を置き換える)SortedMapインタフェースの実装です
私はSortedMap
を実装TreeMap
を使用します。そのために設計されています。
例:
Map<Integer, String> map = new TreeMap<Integer, String>();
// Add Items to the TreeMap
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
// Iterate over them
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
はJava tutorial page for SortedMapを参照してください。
およびhere a list of tutorialsに関連すると、
どうしてあなたはなぜ単に新しい整数(n)をしますか? –
@Adam_G特別な理由はない、私はこの回答を書いたとき、私はオートボクシング(?)に慣れていなかったと思う。 – Barth
のTreeMap、働くだろう。
どうすれば使用できますか?
Map<Float, MyObject> map = new TreeMap<Float, MyObject>();
TreeMapはおそらくこれを行う最も簡単な方法です。通常のマップとまったく同じように使用します。
Map<Float,String> mySortedMap = new TreeMap<Float,MyObject>();
// Put some values in it
mySortedMap.put(1.0f,"One");
mySortedMap.put(0.0f,"Zero");
mySortedMap.put(3.0f,"Three");
// Iterate through it and it'll be in order!
for(Map.Entry<Float,String> entry : mySortedMap.entrySet()) {
System.out.println(entry.getValue());
} // outputs Zero One Three
すなわち、それはあなたがそれを行うことができます他に何を参照して、http://download.oracle.com/javase/6/docs/api/java/util/TreeMap.html APIドキュメントを見てみる価値です。
IMHOこれは受け入れられた答えよりも優れています – Kawu
TreeMap
キーナチュラルオーダーによるソート。キーはComparable
を実装するか、Comparator
(コンストラクターに1つのインスタンスを渡した場合)と互換性があります。あなたのケースでは、Float
は既にComparable
を実装しているので、特別な操作は必要ありません。
keySet
を呼び出して、すべてのキーを昇順で取得できます。
あなたは内部的に順序昇順にソート
例である下記のSortedMapを実装するのTreeMapを使用することができます順序を降順でソート
Map<Integer,String> ascsortedMAP = new TreeMap<Integer,String>();
ascsortedMAP.put(8, "name8");
ascsortedMAP.put(5, "name5");
ascsortedMAP.put(15, "name15");
ascsortedMAP.put(35, "name35");
ascsortedMAP.put(44, "name44");
ascsortedMAP.put(7, "name7");
ascsortedMAP.put(6, "name6");
for(Map.Entry<Integer, String> mapData : ascsortedMAP.entrySet()) {
System.out.println("Key : " +mapData.getKey()+ "Value : "+mapData.getValue());
}
を:ため
//Create the map and provide the comparator as a argument
Map<Integer,String> dscsortedMAP = new TreeMap<Integer,String>(new Comparator<Integer>()
{
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
dscsortedMAP.putAll(ascsortedMAP);
for(Map.Entry<Integer, String> mapData : dscsortedMAP.entrySet()) {
System.out.println("Key : " +mapData.getKey()+" Value : "+mapData.getValue());
}
SortedMAPについての詳細はhttp://examples.javacodegeeks.com/core-java/util/treemap/java-sorted-map-example/
コンパレータを使ってSortedMapを設計したので、この答えが好きです – CodeToLife
しかし、SortedMapはインターフェイスです。 TreeMapはSortedMapを実装します。 –
回答を参照してくださいここで '@ user157196' http://stackoverflow.com/questions/109383/how-to-sort-a-mapkey-value-on-the-values-in-java – Bitmap
Tom Jefferys '答え – JohnnyLambada