Проблема в том, как массив добавляется к объекту здесь.Вы не добавляете массив к объекту.Что происходит, вы добавляете адрес в место в памяти, где находится массив.Поэтому каждый раз, когда вы добавляете массив к объекту, вы каждый раз добавляете один и тот же адрес.Таким образом, каждый массив в объекте на самом деле один и тот же массив снова и снова, так как все они указывают на одно место в памяти.Поэтому, когда вы изменяете массив, он, по-видимому, меняет все их внутри объекта.
Лучше всего либо создать новый массив каждый раз в цикле, по существу создавая новое место в памяти для размещения массива, либо clone()
массив, который создаст новую ссылку.
Пример:
String[] houseOfStark = {"Eddard", "Catelyn",
"Robb", "Sansa", "Arya", "Bran", "Rickon"}; // Sorry Jon
String[] copyOfStark = houseOfStark;
String[] cloneOfStark = houseOfStark.clone();
houseOfStark[1] = "Lady Catelyn";
System.out.println(houseOfStark[1]);
System.out.println(copyOfStark[1]);
System.out.println(cloneOfStark[1]);
Будет производить:
Lady Catelyn
Lady Catelyn
Catelyn
Хороший пост в блоге, объясняющий разницу