我希望在我的Map-structure中使用我的顶点类的integer-id-value作为索引,而不使用并行数据结构。
class Vertex {
private int v;
private int label;
//...
}
我将顶点对象存储在Map<Vertex,ArrayList<Edge>> adjMap
。
是否可以使用我的Vertex类的v-property作为Map中的索引键?
答案 0 :(得分:1)
这取决于您正在使用的Map实现。例如,对于HashMap,您可以覆盖equals
类的hashCode
和Vertex
,以便在v属性相等时将两个顶点视为相等。
class Vertex {
private int v;
private int label;
public Vertex (int v)
{
this.v = v;
}
@Override
public boolean equals (Object o)
{
if (!(o instanceof Vertex))
return false;
Vertex ov = (Vertex)o;
return this.v == ov.v;
}
@Override
public int hashCode ()
{
return v;
}
}
现在,要在Map中找到给定v值的值:
adjMap.containKey(new Vertex(v));
答案 1 :(得分:0)
确定。然后,您的usernames
和equals
应仅使用以下属性v。代码:
hashcode
输出:Value :: vertex