树形图构造函数

时间:2014-09-11 03:36:40

标签: java treemap

我尝试设置树形图构造函数的方式是否正确?

import java.util.TreeMap ;

public class Table<K extends Comparable<K>, T> { //K = Key, T = Item

    TreeMap<K, T> tm;

    public Table<K, T> () {
        tm = new TreeMap<K, T>();
    }


    public boolean isEmpty() {
        return tm.isEmpty();
    }

    public int size() {
        return tm.size();
    }

    public void tableInsert(K key, T item) throws TableException {
        tm.put(key, item);
    }

    public boolean tableDelete(K key) {
        if (tm.containsKey(key)) {
            tm.remove(key);
            return true;
        } else {
            return false;
        }
    }

    public T tableRetreive(K key) {
        return tm.get(key);
    } //return null if not found

    public void printTable() {
        TreeMap<K, T> tmclone = (TreeMap<K, T>) tm.clone();
        while (!tmclone.isEmpty()) {
            System.out.println(tmclone.pollFirstEntry());
        }


    } //print in search key order
}

我有另一个将创建students的类,并且put方法将插入到新的地图树中..但编译器说它期待一个不同的字符。另外,调用构造函数的正确方法是输入TreeMap blah<K,T> = new TreeMap正确吗?

2 个答案:

答案 0 :(得分:0)

如果您询问构造函数中的初始化是否正常(?),是的。你也可以在构造函数之上创建一个初始化器,如下所示:

public class Table <K extends Comparable<K>, T> { //K = Key, T = Item
     TreeMap<K,T> tm;

     { //Initializer
          tm = new TreeMap<K,T>();
     }

     public Table<K,T>() {
         //Your constructor here
     }

     //Other methods...
}

就问题的第二部分而言,根据您的描述,在没有看到更多代码和获取更多详细信息的情况下诊断问题的情况太少了。

答案 1 :(得分:0)

这段代码:

public Table<K, T> () {
    tm = new TreeMap<K, T>();
}

需要改为:

public Table() {
    tm = new TreeMap<K, T>();
}

否则一切都好。