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

조회수 736회

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

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

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

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

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

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

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    arraycopy는 얕은 복사를 합니다.

    배열의 원소가 참조 객체라면 주소 값만 복사될 것 같네요.

    결국엔 순회를 하면서 하나씩 넣어줘야할 것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 답변 감사합니다! 질문이 잘못된거 같네요. 다시 질문을 올려야 할 것 같습니다. 심승현 2018.6.22 19:46

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

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

(ಠ_ಠ)
(ಠ‿ಠ)