マップを持ち、値の長さと文字列の長さをソートしようとしています。私は2つの異なるステートメントが必要かどうかわからないので、ステートメント内の2つの異なるものを比較しようとしています。これはディジットルートを比較するために使用されているため、ストリングの長さとディジットルートは値と値です。例えば複数のフィールドで整数、文字列のセットを並べ替え
:
("103",4); (1+0+3 == 4)
("4",4); (4 ==4)
("11101",4); (1+1+1+0+1 == 4)
("5",5); (5 == 5)
("1003",4); (1+0+0+3 == 4)
しかし("103",4) > ("4",4)
"103"> "4" の長さ、および("11101",4) > ("103",4);
、長さ"11101" > "103"
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { int length = o1.getKey().length().compareTo(o2.getKey().length());
if(length != 0) {
return length;
}
return (o1.getValue()).compareTo(o2.getValue());
}
});
はなぜこの仕事をしていないので?
文字列の値と長さはどういう意味ですか? –
'Collections.sort(リストリスト)'はリスト用です。あなたは代わりにTreeMapを使うことができます –
haifzhan
これはあなたが求めているものと推測できますhttps://stackoverflow.com/questions/25899929/in-java-sort-hash-map-by-its-key-length –