Arrays.copyOf, Arrays.copyOfRange 배열 복사

SionBackEnd·2022년 7월 7일
0

자바 스터디

목록 보기
7/21
post-thumbnail

개요

Arrays.copyOf()와 Arrays.copyOfRange() 메소드를 통해 배열을 복사 할 수 있다.

사용법

  • Arrays.copyOf(원본배열, 복사할 길이);
  • Arrays.copyOfRange(원본 배열, 복사할 시작인덱스,복사할 끝인덱스 [포함x] ) 인덱스는 0부터 시작하는것 기준
  • Arrays.copyOf를 사용하면 배열의 길이를 늘릴수가 있음(내 생각에는 이미 있던 배열의 객체에 값들을 다시 덮어씌우는 느낌이다.

알아둘점

값에 의한 복사이므로 복사된 배열에서 값을 바꿔도 원본 배열의 값이 바뀌지 않음!

사용예시

 int [] a = new int [] {1,2,3,4,5};
        //배열 갯수만큼 복사하기
        int [] b = Arrays.copyOf(a,5);
        System.out.println(Arrays.toString(b));

        //배열의 길이 늘리기
        b = Arrays.copyOf(b,b.length+1);
        System.out.println(Arrays.toString(b));
        // 배열의 값 입력
        b[5] = 3;
        System.out.println(Arrays.toString(b));
        //배열의 길이 늘리기
        b = Arrays.copyOf(b,b.length+1);
        System.out.println(Arrays.toString(b));

        System.out.println();

        // 0번째 인덱스부터 마지막 인덱스까지 카피 (파라미터로는 마지막인덱스 값이 올자리에 +1한값을 넣어준다.)
        int [] c = new int[]{};
        c = Arrays.copyOfRange(a,0,5);
        System.out.println(Arrays.toString(c));
        
        System.out.println();
        
        // 배열의 길이 늘리기 => 인덱스 값들이 초기화 되는것을 확인가능
        c = Arrays.copyOfRange(a,0,6);
        c[5] = 6;
        System.out.println(Arrays.toString(c));
        c = Arrays.copyOfRange(a,0,7);
        System.out.println(Arrays.toString(c));

출력값

//배열 갯수만큼 복사하기
[1, 2, 3, 4, 5]
//배열의 길이 늘리기 => 뒤에 추가적으로 값이 붙는것을 확인가능
[1, 2, 3, 4, 5, 0]
// 배열의 값 입력
[1, 2, 3, 4, 5, 3]
//배열의 길이 늘리기
[1, 2, 3, 4, 5, 3, 0]
// 0번째 인덱스부터 마지막 인덱스까지 카피 (파라미터로는 마지막인덱스 값이 올자리에 +1한값을 넣어준다.)
[1, 2, 3, 4, 5]
// 배열의 길이 늘리기 => 인덱스 값들이 초기화 되는것을 확인가능
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 0, 0]
profile
많은 도움 얻어가시길 바랍니다!

0개의 댓글