用红黑树存储,要求能保存任意类型的元素。
我是这么做的:结点的KEY域为Object,这样就能存储任意类型的数据。一开始时就记住元素的类型,当要用到结点的值时(比如插入时比较元素的大小)强制转换为原来的类型。但有个问题,程序必须事先知道元素所有可能的类型,并在代码中写上转换的语句。如果存储的是未知的自定义类型,比如Dog类,这个办法就行不通了。即使Dog里定义了比较函数,但由于程序不知道KEY是Dog类型的,也无法比较大小。
请教各位大大有什么好的方法能让红黑树存储任意类型的数据,包括自定义类型,让它能成功插入和删除数据?

解决方案 »

  1.   

    数据结构要和java集合结合起来学习,api里说道:java.util.TreeMap基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 
    treeMap就是一个红黑树的实现
      

  2.   

    楼上的兄弟你好,能否说的详细些,具体怎么实现的,API看得不是很明白
      

  3.   


    import java.util.TreeMap;public class Test7 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    TreeMap tree = new TreeMap();
    tree.put(1, new String("abc"));
    tree.put(2, new Integer(12));
    tree.put(3, new Dog("旺财", "red"));
    tree.put(4, new Integer(2));
    System.out.println(tree);
    }}class Dog {
    private String name;
    private String color; public Dog(String name, String color) {
    this.color = color;
    this.name = name;
    } @Override
    public String toString() {
    // TODO Auto-generated method stub
    return "name:" + name + "|color:" + color;
    }}
      

  4.   

    你可能没明白我意思我是要自己实现那功能,而不是使用TreeMap。