Я добавляю данные в HashMap, где node - это объект с индексом переменных и преемником.Данные массива HashMap заменяются
private static HashMap <Integer, node> peerList = new HashMap<Integer, node>();
public void generateFingerTable (int node_position) {
chordSize = chord.initChordSize;
chord chord = new chord();
//create new node and add to map
node newPeer = new node();
peerList.put(node_position, newPeer);
for (int i=0; i<chordSize; i++) {
int temp = i+1;
newPeer.index = new int [chordSize];
newPeer.successor = new int [chordSize];
int temp1 = node_position + (int)Math.pow(2, temp-1) % chord.getChordSize();
peerList.get(node_position).index[i] = temp;
peerList.get(node_position).successor[i] = temp1;
System.out.println ("Index: " + newPeer.index[i] + "\n" + "Successor: " +
newPeer.successor[i]);
}
}
public void printFingerTable() {
for (Map.Entry<Integer, node> m : peerList.entrySet()) {
System.out.println ("Peer " + m.getKey() + " with Index: " + m.getValue().getIndex() + " Successor: " +
m.getValue().getSuccessor());
}
При печати детали Hash, результат показывает индекс: [0,0,0,0,5], преемник: [0,0,0,0,16], который означает, что ранее добавленные элементы заменяется, и только последний элемент сохраняется в Hashmap.
Предложенный результат должен быть индексом [1,2,3,4,5], преемником: [1,2,4,8,16]. Как я могу изменить это, чтобы данные не заменялись?
Привет 'HashMap' не позволит Дубликаты всякий раз, когда он находит дубликат ключа он будет заменить это последнюю. – Babel