각진 세상에 둥근 춤을 추자
[Java] 배열 복사하기 본문
배열을 복사하는 방법은 두 가지가 있다.
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 |