앞으로의 진도
얕은복사 깊은복사 어레이리스트 해쉬맵
package kr.or.kh21;
class Book{
String book;
String author;
Book(String book, String author){
this.book = book;
this.author = author;
}
public String getBook() {
return book;
}
public void setBook(String book) {
this.book = book;
}
public void setAuthor(String author) {
this.author = author;
}
public String getAuthor() {
return author;
}
public void showInfo() {
System.out.println(book+", "+author);
}
}
public class ObjectCopy {
public static void main(String[] args) {
Book[] library = new Book[5];
Book[] copylibrary = new Book[5];
for(int i=0; i<library.length; i++) {
library[i] = new Book("태백산맥", "조정래");
}
//**Arraycopy 얕은복사
System.arraycopy(library, 0, copylibrary, 0, 5);
library[0].setBook("나목");
library[0].setAuthor("박완서");
//for(자료형 변수명 : 배열)***
for(Book book : library) {
book.showInfo();
}
System.out.println("==========");
for(Book book : copylibrary) {
book.showInfo();
}
//***얕은복사 : 주소복사이므로 하나만 변경하면 다같이 변경!
}
}
나목, 박완서
태백산맥, 조정래
태백산맥, 조정래
태백산맥, 조정래
태백산맥, 조정래
==========
나목, 박완서
태백산맥, 조정래
태백산맥, 조정래
태백산맥, 조정래
태백산맥, 조정래
package kr.or.kh21;
import java.util.Iterator;
public class ObjectCopy2 {
public static void main(String[] args) {
Book[] library = new Book[5];
Book[] copylibrary = new Book[5];
for(int i=0; i<library.length; i++) {
library[i] = new Book();
library[i].setBook("태백산맥");
library[i].setAuthor("조정래");
}
//***깊은복사
for(int i=0; i<copylibrary.length; i++) {
copylibrary[i] = new Book();
copylibrary[i].setBook(library[i].getAuthor());
copylibrary[i].setAuthor(library[i].getAuthor());
}
//library 데이터 변경
library[0].setBook("나목");
library[0].setAuthor("박완서");
for(Book book : library) {
book.showInfo();
}
System.out.println("==========");
for(Book book : copylibrary) {
book.showInfo();
}
//***copylibrary는 변경안됨!!! : 깊은복사
}
}
나목, 박완서
태백산맥, 조정래
태백산맥, 조정래
태백산맥, 조정래
태백산맥, 조정래
==========
조정래, 조정래
조정래, 조정래
조정래, 조정래
조정래, 조정래
조정래, 조정래