我有一个TreeSet。
字符串键实际上是int的字符串值,因为freemarker不允许int作为映射键,因为这是一个有序映射,它按如下方式对其进行排序:
1
10个
11个
12个
2
3
4
5
6
7
8
9个
任何人都知道如何绕过这个并按数字顺序打印?
由于
答案 0 :(得分:2)
通过构造函数TreeMap(Comparator)
使用适当的比较器构建地图。
(或TreeSet,如果这就是你的意思;你提到了集合和地图。)
答案 1 :(得分:2)
String
通过lexicographic order在内部强制compareTo
。
按字典顺序比较两个字符串。
如果您不想这样做,请考虑指定自定义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));
}
});