songdev
songdev
songdev
전체 방문자
오늘
어제
  • 분류 전체보기 (78)
    • Web 개발 (6)
    • 리눅스 (5)
    • git (5)
    • Bigdata (8)
      • 하둡 Architecture 번역 (6)
      • Ambari (2)
    • 코테 (22)
      • 프로그래머스 (22)
    • 자격증 (7)
      • 정보처리기사 (5)
      • SQLD (2)
    • 스터디 (18)
      • 웹 프로그래밍 (3)
      • 개념정리 (4)
      • 예제 (6)
      • 바닐라 JS로 크롬 앱 만들기 (5)
    • 일상 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • level1
  • 배열의 복사
  • parseInt()
  • 정보처리기사 필기
  • copyOfRange()
  • 정보처리기사
  • 정렬
  • 리눅스
  • 깃허브
  • Java
  • 자바스크립트
  • 프로그래머스
  • 배열
  • charAt()
  • github push
  • github
  • 향상된 버블정렬
  • sort()
  • javascript
  • SQLD

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
songdev

songdev

스터디/예제

배열의 복사/데이터 복사/깊은 복사/java

2020. 2. 21. 08:36
반응형

○ 배열의 복사

 

- 데이터 복사(깊은 복사) : 실제 요소로 들어있는 값에 대한 복사로 원본을 수정해도 복사본에 영향을 미치지 않는다.

public class ArrCopy {
    public static void main(String[] args) {

        int[] nums = {10, 20, 30, 40, 50};        //-- 배열 원본
        
        int[] copys2 = copyArray(nums);            //-- 깊은 의미의 배열 복사 수행
                                                //   (사용자 정의 메소드 호출)
        int[] copys3 = (int[])nums.clone();        //-- 깊은 의미의 배열 복사 수행
                                                //   (자바 제공 → clone() 메소드)
        // 배열을 반환하는게 아니라 객체를 반환한다.

        // 원본 배열 요소의 수정 발생~!!!
        nums[1] = 2;
        
        // 결과 확인
        System.out.println("nums[1] : " + nums[1]);
        //--==>> nums[1] : 2
        System.out.println("copys2[1] : " + copys2[1]);
        //--==>> copys2[1] : 20
        System.out.println("copys3[1] : " + copys3[1]);
        //--==>> copys3[1] : 20
    }
    
    // 매개변수로 int 배열 타입을 넙겨받아 이를 복사한 후
    // 복사한 배열을 반환하는 기능을 가진 메소드
    public static int[] copyArray(int[] os) {

        // 매개변수로 넘겨받은 배열(os)
        // 즉, 원본 배열 만큼의 배열방(메모리 공간)을 확보한
        // 복사할 배열방 생성
        int[] temp = new int[os.length];

        // 각각의 원본 배열(os)에 담겨있는 요소들을 복사 배열(temp)에 담아내기
        for(int i=0;i<os.length;i++) {
            temp[i] = os[i];
        }

        // 복사한 배열(temp) 반환
        return temp;
    }
        
}

[실행 결과]

nums[1] : 2
copys2[1] : 20
copys3[1] : 20
계속하려면 아무 키나 누르십시오 . . .

반응형

'스터디 > 예제' 카테고리의 다른 글

정보은닉/접근제어자/getter/setter/java  (0) 2020.02.21
배열의 복사/주소값 복사/얕은 복사/java  (0) 2020.02.20
Random 클래스 활용  (0) 2020.02.20
입력받은 인원 수 만큼 이름과 전화번호를 입력받아 전체 출력하기/java/배열  (0) 2020.02.09
A ~ Z 까지 배열로 담아 출력하기/java  (0) 2020.02.09
    '스터디/예제' 카테고리의 다른 글
    • 정보은닉/접근제어자/getter/setter/java
    • 배열의 복사/주소값 복사/얕은 복사/java
    • Random 클래스 활용
    • 입력받은 인원 수 만큼 이름과 전화번호를 입력받아 전체 출력하기/java/배열
    songdev
    songdev

    티스토리툴바