计算聚类算法相关系数的时候,如果开始不知道聚簇和节点数量,如下表所示
k1 | k2 | ... | |
v1 | |||
v2 | |||
... |
public class Thet {
public Node node;
public Cluster k;
public double value;
}
这样就可以在类中建立一个一维表,不用考虑v和k的数量了
缺点就是这样查找起来可能会慢一点,以后看看有没有更好的办法
========================我是分割线================================
前面想到可以建立一个HashSet<Thet>,只要重写equals和hashcode两个函数就行了
public class Node {
public String nodeType;
public String nodeID;
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(!(obj instanceof Node)) return false;
if(((Node)obj).nodeID == nodeID) return true;
return false;
}
@Override
public int hashCode() {
return (nodeID!=null?nodeID.hashCode():1);
}
}
public class Cluster {
public int clusterNumber;
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(!(obj instanceof Cluster)) return false;
if(((Cluster)obj).clusterNumber == clusterNumber) return true;
return false;
}
@Override
public int hashCode() {
return Integer.hashCode(clusterNumber);
}
}
这样复杂度就是O(1)了,看上去很美好的样子,等会儿试一下