keySet和entrySet需要定义的方法?

时间:2013-11-12 05:44:16

标签: java treemap

这是相当荒谬的,我不确定为什么会发生这种情况,但每当我尝试使用.keySet.entrySet时,我都会在Eclipse中得到错误,为它创建一个新方法。

1 个答案:

答案 0 :(得分:6)

类型SparseMatrix未声明名为entrySet的方法。类型TreeMap可以。您应该在该类型的引用上调用该方法。可能实现一个getter,它将检索matrix对象的SparseMatrix字段。

// inside the SparseMatrix class
public TreeMap<Integer, TreeMap<Integer, Double> getMatrix() {
    return matrix;
}

然后调用此方法并链接entrySet()调用

public static boolean equals(SparseMatrix a, SparseMatrix b) {
    System.out.println("The entry set is:\n" + a.getMatrix().entrySet());
}

请记住,在编译时,方法调用是根据变量的类型来解决的。如果该类型未直接或通过继承声明该​​方法,则会发生编译错误。