각진 세상에 둥근 춤을 추자

[Java] 배열 복사하기 본문

Java

[Java] 배열 복사하기

circle.j 2022. 9. 19. 00:31

배열을 복사하는 방법은 두 가지가 있다.

 

1. 기존 배열과 배열 길이가 같거나 더 긴 배열을 만들고 for문을 사용하여 각 요소 값을 반복하여 복사하기

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

 

System.arraycopy (src, srcPos, dest, destPos, length)
매개변수 설명
src 복사할 때 배열 이름
srcPos 복사할 배열의 첫 번째 위치
dest 복사해서 붙여 넣을 대상 배열 이름
destPos 복사해서 대상 배열에 붙여 넣기를 시작할 첫 번째 위치
length src에서 dest로 자료를 복사할 요소 개수 

 

System.arraycopy() 메소드를 사용해 배열을 복사해 본다.

 

 

package ch07_1;

public class ArrayCopy {
	public static void main(String[] args) {
		
		int [] array1 = {10,20,30,40,50};
		int [] array2 = {1,2,3,4,5};
		
		System.arraycopy(array1, 0, array2, 1, 4);
		
		for ( int i=0; i<array2.length; i++) {
			System.out.println(array2[i]);
		}
		
	}
}

 

 


 

객체 배열 복사하기 

 

마찬가지로 객체 배열도 복사해서 사용할 수 있다.

 

먼저 Book 클래스를 생성한다.

package ch07_1;

public class Book {
	
	private String bookName;
	private String author;
	
	
	// 디폴드 생성자
	public Book() {};	
	
	// 책 이름과 저자 이름을 매개변수로 받는 생성자
	public Book(String bookName, String author) {
		this.bookName = bookName;
		this.author = author;
	}

	public String getBookName() {
		return bookName;
	}

	public void setBookName(String bookName) {
		this.bookName = bookName;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}
	
	// 책 정보를 출력해 주는 메소드
	public void show() {
		System.out.println(bookName + ", " + author);
	}
	
}

 

객체 배열을 복사하는 프로그램을 작성한다.

 

package ch07_1;

public class ObjectCopy1 {
	public static void main(String[] args) {
		
		Book [] bookArray1 = new Book[3];
		Book [] bookArray2 = new Book[3];
		
		bookArray1[0] = new Book("잘될 수밖에 없는 너에게","최서영");
		bookArray1[1] = new Book("다섯 번째 감각","김보영");
		bookArray1[2] = new Book("어금니 깨물기","김소연");
		System.arraycopy(bookArray1, 0, bookArray2, 0, 3);
		
		for (int i=0; i<bookArray2.length; i++) {
			bookArray2[i].show();
		}
		
	}
}

'Java' 카테고리의 다른 글

[Java] 다차원 배열  (0) 2022.09.19
[Java] 향상된 for문 사용하기  (0) 2022.09.19
[Java] 객체 배열  (0) 2022.09.18
[Java] 배열  (0) 2022.09.18
[Java] Singleton  (0) 2022.09.18