Я попытался переместить массив, но у меня возникли проблемы.Ссылка на сдвиг массива Java
Код для сдвига массива выглядит следующим образом:
for(int i = (size - 1); i >= 0; i--)
{
data2[i+1] = data2[i];
}
массива инициализации (копируется из другого массива)
obj[] data = new obj[size];
obj[] data2 = new obj[size + 1];
for(int i = 1; i <= size; i++)
{
data2[i] = data[i-1];
}
data2[0] = data[0];
Например, если размер = 3, я только хочу, чтобы манипулировать и использовать данные для данных [1] -> данные [3]. Но, если данные для данных [0] изменяются, данные для данных [1] также меняются. Что вызывает это?
например:
данных 2 [0]: 6 ---- 1 ---- 0 ---- 0
данных 2 [1]: 6 ---- 1 ---- 0 ---- 0
данных 2 [2]: 4 ---- 8 ---- ---- 0 0
данных 2 [3]: 9 --- -5 ---- 0 ---- 0
data2[0].setElementTwo(3);
2 данных [0]: 6 ---- 3 ---- ---- 0 0
данных 2 [1]: 6 ---- 3 ---- 0 --- -0
данных 2 [2]: 4 ---- 8 ---- ---- 0 0
данных 2 [3]: 9 ---- 5 ---- 0- --- 0
Я копирую первый массив во второй, потому что данные [] генерируются в другом классе, который генерируется из 0-> размера, в то время как мне нужна 1-> размер + 1 для этой части программа.
-edit для Ясности
полного псевдокоде:
obj[] data = new obj[size];
obj[] data2 = new obj[size + 1];
for(int i = (size - 1); i >= 0; i--)
{
data2[i+1] = data2[i];
}
for(int i = 1; i <= size; i++)
{
data2[i] = data[i-1];
}
data2[0] = data[0];
// print data2 0->3
// change data2[0] value
// print data2 0->3, values would have changed for data[0] and data[1]
// but I only want to change values for data[0] and not data[1]
мутноватый от вопроса, что большинство из этих переменных были инициализируется и где кодовая последовательность управляется ими. Также четко укажите, чего вы пытаетесь достичь. – nullpointer