问题描述
我正在尝试使用TreeMap存储数据,但是在向其中添加新元素时遇到问题。
settings.xml
当我使用addVertex方法时,没有错误,但是在显示地图时,树形地图中只有1个元素:{1 = []}
public class Graph {
private TreeMap<Vertex,ArrayList<Vertex>> tree;
public Graph() {
this.tree = new TreeMap<>();
}
public void addVertex(int label) {
this.tree.put(new Vertex(label),new ArrayList<Vertex>());
}
我试图创建一个像这样的基本地图:
public class Main {
public static void main(String[] args) {
Graph g = new Graph();
g.addVertex(1);
g.addVertex(2);
g.addVertex(3);
g.addVertex(4);
它有效,所以我真的不明白我的错误。 我还检查了我的类Vertex是否正确,并且运行良好。
TreeMap<Integer,String> map = new TreeMap<Integer,String>();
map.put(1,"dog");
map.put(2,"cat");
System.out.println(map);
}
我编辑了我的Vertex类,并添加了public class Vertex implements Comparable<Vertex> {
private int label;
public Vertex(int label) {
this.label = label;
}
public String toString() {
return this.label + "";
}
public int compareTo(Vertex o) {
return this.label == o.label ? 1 : 0;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if( ! (obj instanceof Vertex) ) return false;
Vertex other = (Vertex) obj;
return this.label == other.label;
}
@Override
public int hashCode() {
return label < 0 ? 0 : label;
}
和hashcode()
,但仍然无法正常工作。
您能帮我发现我的错误吗? 预先感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)