Book[] library = new Book[5];
Book[] copyLibrary = new Book[5];
library[0] = new Book("태백산맥", "조정래");
library[1] = new Book("태백산맥1", "조정래");
library[2] = new Book("태백산맥2", "조정래");
library[3] = new Book("태백산맥3", "조정래");
library[4] = new Book("태백산맥4", "조정래");
System.arraycopy(library, 0, copyLibrary, 0, 5);
// copyLibrary 배열 전체 길이만큼 돌면서 element를 하나씩 꺼내서 book 변수에 넣겠다.
for(Book book : copyLibrary) {
book.showBookInfo();
}
1) 얕은 복사: System.arraycopy를 이용해서 주소를 복사함 (2개의 객체 array는 똑같은 것을 가리킴)
2) 깊은 복사: 하나하나 객체를 새로 만들어서 값을 대입해야함, 인스턴스가 구별되기 때문에 값이 바뀐다고 해서 원본에 영향을 미치지 않음
향상된 for 문
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
System.out.println(str);
}
for (String str : list) {
System.out.println(str);
}