Допустим, у меня есть ArrayList of Strings, называемый list1, содержащий строки: «A», «B», «C», «D», «E».Затем у меня есть другой ArrayList типа storageUnit, который является классом, который я написал, называется list2.Пожалуйста, смотрите код ниже для лучшего объяснения:
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<storageUnit> list2 = new ArrayList<storageUnit>();
storageUnit newUnit = new storageUnit();
for (int i = 0; i < list1.size(); i++) {
newUnit.category = list1.get(i);
list2.add(newUnit);
}
static class storageUnit {
String category;
Hashtable<String, Integer> wordTable = new Hashtable<String, Integer>();
};
Теперь, если я попытаюсь напечатать все категории всех единиц хранения в списке 2, я получу [E, E, E, E, E] вместо [A, B, C, D, E].Кто-нибудь может объяснить, почему это происходит?