Я работаю над алгоритмом кластеризации. Я решил использовать hashmap для хранения точек, потому что думал, что я могу использовать как clusterID и как точку. Я выполняю поиск в режиме dfs, чтобы определить работу с ближайшими и моими расчетами, и все циклы данных происходят вне метода, который я идентифицирую кластерами.
Также целью этой кластеризации является то, что, если точка принадлежит тому же кластеру, ее идентификатор остается прежним. Что я хочу выяснить, так это то, что как только я ввожу значение в хэш-карту, как можно увеличить индекс для следующего значения (ключ будет таким же) без использования цикла.
Вот как выглядит мой метод, я взял некоторое содержание алгоритма, поскольку он действительно не имеет отношения к вопросу.
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);
}
}
...
}
Спасибо за любые предложения, также, пожалуйста, дайте мне знать, если остальная часть кода необходима для принятия правильного решения. Просто хотел, чтобы все было просто.