Так что мой текущий код:Я пытаюсь сделать два индекса массива относятся к одной и той же точки в памяти
int x = 5;
int[] one = new int[1];
one[0] = x;
int[] two = new int[1];
two[0] = x;
x = 10;
System.out.println(one[0]);
System.out.println(two[0]);
Цель здесь, чтобы получить выход двух 10-х годов. Вместо этого я получаю два печатных издания.
Я знаю, что в C++ существует способ сказать & x ссылаться на ссылочный тип, но я не знаю ничего подобного в Java?
Я был бы очень благодарен, если бы кто-то мог помочь мне здесь.
EDIT
Cheers guys. В итоге я создал свой собственный класс и использовал его.
class Ideone {
public static void main (String[] args) throws java.lang.Exception
{
MyTester x = new MyTester();
x.i = 5;
MyTester[] one = new MyTester[1];
one[0] = x;
MyTester[] two = new MyTester[1];
two[0] = x;
x.i = 10;
System.out.println(one[0].i);
System.out.println(two[0].i);
}
}
class MyTester
{
public MyTester() {}
public int i;
}
Примитивные значения копируются. Попробуйте использовать массив Integer. – Scot
@Scot Целые числа неизменяемы, поэтому присвоение нового * значения * 'Integer' не будет видно в массиве. Что нужно OP - это изменение * state * 'x'. – Pshemo
@Callum вы можете создать свою собственную реализацию класса Integer с помощью setter ie. mutable, то вы могли бы выполнить это ... – brso05