私は0,1,2,3などの昇順で要素をソートしたツリーマップを持っています。これらの要素は値0,1,2などでソートされています私はそれらを並べ替えるためにコンパレータを使用しています。私はmap.Howの終わりに0の値を持つ要素を配置したい以外は、この順序を保持したいですか?あなたが「最後」の要素を追加することができるように、完全に無意味になるのでTreeMapの最後に要素を配置
1
A
答えて
5
として0を扱うことができますが、あなたのTreeMapであっても、ソートされていますTreeMapsはそのようには機能しませんが。
"0"が最大の要素であると判断するようにコンパレータを構成することで、すべての "0"を最後まで並べ替えることができます。 ソートアルゴリズムによっては、最後の「0」の順番がランダムになることに注意してください。
1
あなたのコンパレータを変更し、すでに述べたように、最大数
1
の値ではなく、のキーでは、ソートしたいことがわかりました。コンパレータはそれを少し複雑にする値を取得しません。出力された
private static Map<String, Integer> helper = new HashMap<String, Integer>();
private static Comparator<String> myComparator
= new Comparator<String>() {
public int compare(String s1, String s2) {
Integer i1 = helper.get(s1);
Integer i2 = helper.get(s2);
if (i1 == 0) return 1; // i1 > i2
if (i2 == 0) return -1; // i1 < i2
return i1.compareTo(i2);
}
};
public static void main (String[] args) throws java.lang.Exception {
helper.put("minus one", -1);
helper.put("zero", 0);
helper.put("one", 1);
helper.put("very much", Integer.MAX_VALUE);
helper.put("nothing", 0);
helper.put("null", 0);
Map<String, Integer> map = new TreeMap<String, Integer>(myComparator);
map.putAll(helper);
for(Map.Entry<String, Integer> entry:map.entrySet()) {
System.out.printf("%s = %s%n", entry.getKey(), entry.getValue());
}
}
:
minus one = -1
one = 1
very much = 2147483647
nothing = 0
zero = 0
null = 0
関連する問題
- 1. 配列の最後の要素に要素を追加する
- 2. JavaのTreeMap実装は最後の要素のみを返します
- 3. 最後の要素のString.join配列
- 4. C#は、最後の配列要素
- 5. 配置要素
- 6. Java最後の配列要素を最初に移動する
- 7. 要素の配置
- 8. 最後の位置に子要素を挿入する
- 9. 要素を配列に配置する
- 10. VBScript - 配列要素をGetElementByIdに配置
- 11. iReport:行を削除した後に要素を再配置
- 12. Jqueryのdetach()およびappendTo()の後に配置する要素
- 13. 配列の最後の要素にカンマを取り除く
- 14. iScroll 4を使用して最後の要素をスクロールして最初の要素の開始位置にスクロール
- 15. xamlの要素の配置
- 16. 最初の最後の位置に要素を追加する - Pythonのnumpy配列
- 17. div内の配置要素
- 18. 最後のフレックスアイテムをコンテナの最後に配置します
- 19. 配列の最後の要素の後に余分な要素をjsxに挿入しますか?
- 20. 絶対位置の後に兄弟要素を配置する方法は?
- 21. Css要素を別の要素のすぐ隣に配置
- 22. PHP:Zend Form要素のラベルを要素の右側に配置
- 23. 別の要素の上にdiv要素を配置します
- 24. Javascriptで別の要素の下に要素を配置する
- 25. クリックした要素のコンテンツを別の要素に配置
- 26. 配列内の最小要素の位置を見つける
- 27. 他の要素と相対的に要素を配置する
- 28. 要素を要素の中に配置する方法
- 29. ボタンの最後の要素
- 30. djangoテンプレートフィルタchaning - 最後の要素の最後の要素を取得
それ新しいアプローチは、ちょうどすべての値を収集し、キーの値を検索するために、コンパレータで使用可能な第2の(ソートされていない)マップを使用していますあなたがやろうとしていることのような音がより良い方法で行われるべきです。例えば、 '0'は一度しか出現しないので、最初と最後に出現できません。おそらく、あなたは何をする必要があるのかを明確にすることができ、より単純な解決策を考え出すことができます。 –
私は何かを並べ替えるためにコンパレータを使用しています。また、0もあります。私は最後に0がほしいと思っています。@ Peter Lawrey – Azfar
'0'を使用する代わりに' Integer.MAX_VALUE'を使わないのはなぜですか? –