자바 다중 배열 복사 질문드립니다!

조회수 1677회

어제 문제를 풀다가 2차원 배열인 B배열에 2차원 배열인 A배열을 System.arraycopy로 복사하여 B의 내용값만 변경하도록 하고 싶었습니다.

하지만 B배열의 값을 바꾸면 A배열의 값도 바뀌게 되었고, 그로인해 애를 좀 먹었습니다. System.arraycopy로 2차원 배열을 복사하면 B배열이 A배열을 참조 하게 되는 것 같더라구요.

제가 원하는건 참조가 아닌 정말 배열의 값만을 복사하여 안에 내용이 변경되더라도 서로 영향을 주지않게 하고싶습니다. 서로 영향을 주지하고 배열을 복사하는 메소드가 자바에 존재하나요?

아니면 반복문을 사용하여 하나씩 값을 넣어주는 방법뿐인가요?

마지막으로 만약 메소드가 있다면 메소드 vs 반복문 속도의 차이는 얼마나 나는지 알고 싶습니다.

위 내용 중 잘못된 것이 있으면 알려주세요!

소스코드도 첨부합니다!

int[][] test = new int[][] {{1,1},{2,2},{3,3}};
int[][] test2 = new int[3][2];
System.arraycopy(test, 0, test2, 0, 3);
test2[0][0]++;

위와같이 하면 test2의 값이 test에도 영향을 끼칩니다.

설명과 해결방법을 알려주시면 감사하겠습니다!

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)