将元素放入TreeMap Java

问题描述

我正在尝试使用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 (将#修改为@)