我有一个基于以下结构的嵌套树形图,然后它从“2”继续:{具有相同的结构..
如您所见,它已经按“c13”子项(剧集编号)排序。但是当我在我的应用程序中使用树形图时,它显示如下:
http://i50.tinypic.com/15o9vno.png
他们甚至没有远程排序..但我不明白为什么?:O
在我的android应用程序中使用它时同样的问题..
干杯
我有一个基于以下结构的嵌套树形图,然后它从“2”继续:{具有相同的结构..
如您所见,它已经按“c13”子项(剧集编号)排序。但是当我在我的应用程序中使用树形图时,它显示如下:
http://i50.tinypic.com/15o9vno.png
他们甚至没有远程排序..但我不明白为什么?:O
在我的android应用程序中使用它时同样的问题..
干杯
以下是有关TreeMap的一些有价值的信息:
SortedMap 接口的基于红黑树的实现。此类保证映射将按键升序排序,根据键类的自然顺序(请参阅Comparable)或创建时提供的比较器排序,具体取决于使用的构造函数。
请注意,如果该排序映射要正确实现 Map 接口,则排序映射维护的排序(无论是否提供显式比较器)必须与 equals 一致。(参见 Comparable 或 Comparator 以获得与 equals 一致的精确定义。)这是因为 Map 接口是根据 equals 操作定义的,但是 map 使用它的 compareTo(或 compare)方法执行所有键比较,所以两个键从排序图的角度来看,这种方法认为相等的元素是相等的。已排序映射的行为是明确定义的,即使它的排序与 equals 不一致;它只是不遵守 Map 接口的一般合同。
您是否正确实施了上述方法?
Collections框架也有不同的实现(这里有一个概述)。如果 TreeMap 没有提供您想要的功能,您可以实现另一个并根据您的需要对其进行修改。
尝试使用比较器:
TreeMap map = new TreeMap<Obj1, Obj2>(new ObjComparator());
private class ObjComparator() implements Comparator<Obj1> {
public int compareTo(Obj1 o1, Obj1 o2) {
return o1.compareTo(o2); // do your logic here
}
}