我正在研究聚类算法。我决定使用hashmap存储点,因为我认为我可以用作clusterID和点。我做了一个dfs时尚搜索,以识别最近的和我的计算相关的工作,所有数据循环都发生在我识别集群的方法之外。
此聚类的目的还在于,如果某个点属于同一个集群,则其ID保持不变。我想知道的是,一旦我在哈希映射中输入值,如何在不使用循环的情况下增加下一个值的索引(Key将是相同的)。
以下是我的方法的样子,我从算法中提取了一些内容,因为它与问题无关。
public void dfsNearest(double point) {
double aPointInCluster = point;
if(!cluster.contains(aPointInCluster)) {
...
this.setNumOfClusters(this.getNumOfClusters() + 1);
mapOfCluster.put(this.getNumOfClusters(), aPointInCluster);
//after this i want to increase the index so no override happens
}
...
if(newNeighbor != 0.0) {
cluster.add(newNeighbor);
mapOfCluster.put(this.getNumOfClusters(), newNeighbor);
//want to increase the index....
...
if (!visitedMap.containsKey(newNeighbor)) {
dfsNearest(newNeighbor);
}
}
...
}
感谢您提出任何建议,如果有其他代码需要做出正确的决定,请告知我们。只是想保持简单。