[JAVA] 배열 복사 ( System.arraycopy() 메소드 )

2020. 10. 10. 16:39·Computer Science/Programming Language

배열 복사

배열은 한 번 생성하면 크기를 변경할 수 없기 때문에 더 많은 저장 공간이 필요하면 더 큰 배열을 만들고 이전 배열의 항목을 복사해야함

 

1. for문 사용

int[] oldArr = {1,2,3}
int[] newArr = new int[5];

for(int i=0;i<oldArr.length;i++){
	newArr[i]=oldArr[i];
}

위의 경우, 1,2,3은 그대로 복사하고 4번째 5번째 항목의 경우 int형 배열의 초기값인 0이 된다. 

 

2. System.arraycopy() 메소드 사용

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
// src : 원본배열 
// srcPos : 원본 배열에서 복사할 항목의 시작 인덱스
// dest : 새 배열
// destPos : 새 배열에서 붙여넣을 시작 인덱스
// length : 복사할 개수

예를 들면

System.arraycopy(arr1,0,arr2,0,arr1.length);
//arr1의 모든 항목을 arr2에 복사
String[] oldArr = {"kbs","sbs","mbc"};
String[] newArr = new String[5];

System.arraycopy(oldArr,0,newArr,0,oldArr.length);

String[] 배열의 초기값은 null이므로 newArr의 4번째 5번째 항목은 null이다. 

 

Shallow copy

참조타입 배열의 경우, 배열 복사가 되면 복사되는 값이 객체의 번지이므로 새 배열의 항목은 이전 배열의 항목이 참조하는 객체와 동일함 

 

Depp copy

객체도 별도로 생성 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > Programming Language' 카테고리의 다른 글

[JAVA] 열거 객체의 메소드  (0) 2020.10.12
[JAVA] 열거상수, 열거 타입변수, 객체 ?  (0) 2020.10.10
[JAVA] 열거 (enumeration)타입이란?  (0) 2020.10.10
[JAVA] for-each문  (0) 2020.10.10
[JAVA] eclipse에서 프로그램을 실행할 때 매개값을 주고 실행하려면?  (0) 2020.10.09
'Computer Science/Programming Language' 카테고리의 다른 글
  • [JAVA] 열거 객체의 메소드
  • [JAVA] 열거상수, 열거 타입변수, 객체 ?
  • [JAVA] 열거 (enumeration)타입이란?
  • [JAVA] for-each문
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    c++error
    mysql error
    오블완
    cmd error
    해시
    leetcode
    티스토리챌린지
    LNK2001
    런타임 에러
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 배열 복사 ( System.arraycopy() 메소드 )
상단으로

티스토리툴바