State st = sc.que.remove();
System.out.println(st.getMoves() +" - Goal: " + Arrays.toString(st.getGoal()) + "- Puzzle: " + Arrays.toString(st.getPuzzle()));
State ss = new State(st.getPuzzle(), st.getSpace(), st.getMoves(), st.getGoal());
ss.moveUp();
System.out.println(st.getMoves() +" - Goal: " + Arrays.toString(st.getGoal()) + "- Puzzle: " + Arrays.toString(st.getPuzzle()));
В принципе у меня есть одно состояние, я отпечатываю его значение. Затем я создаю второе состояние, используя значение первого для создания точной копии. Я изменяю второе состояние с помощью метода moveUp(), который меняет пару элементов в массиве с условием состояния. Затем мы перепечатываем значение из первого состояния, которое не было изменено, они разные.Изменение одного объекта меняет значение на второй объект