1

TreeSetがあります。

文字列キーは実際にはintの文字列値です。これは、freemarkerがintをマップへのキーとして許可していないためです。これはソートされたマップであるため、次のようにソートされます。

1
10
11
12
2
3
4
5
6
7
8
9

これを回避して番号順に印刷する方法を知っている人はいますか?

ありがとう

4

2 に答える 2

2

コンストラクターを介して適切なコンパレーターを使用してマップを作成しTreeMap(Comparator)ます。

(または、TreeSet、それが実際の意味である場合は、セットとマップの両方に言及します。)

于 2012-09-03T18:07:18.757 に答える
2

Stringを介して内部的に辞書式順序を課しcompareToます。

2つの文字列を辞書式に比較します。

それを望まない場合は、カスタムを指定することを検討してくださいComparator

final Map<String, ...> map = new TreeMap<String, ...>(new Comparator<String>() {

  public int compare(final String a, final String b) {
    return Integer.valueOf(a).compareTo(Integer.valueOf(b));
  }
});
于 2012-09-03T18:08:29.137 に答える