import java.util.*;
public class ListExample {
public static void main(String[] args) {
List<String> alist = new ArrayList<>();
alist.add("A");
alist.add("B");
alist.add("C");
// ArrayList의 내용을 복사해서 LinkedList 생성
List<String> list = new LinkedList<>(alist);
System.out.println("alist: " + alist);
System.out.println("list : " + list);
// 하나를 수정해도 서로 다른 객체임!
list.add("D");
System.out.println("alist: " + alist);
System.out.println("list : " + list);
}
}
-> 출력결과
alist: [A, B, C]
list : [A, B, C]
alist: [A, B, C]
list : [A, B, C, D]
==> LinkedList는 alist의 데이터를 복사해서 새로 만든 객체이기 때문에 list에 추가해도 alist에는 영향이 없다!
표현 설명 new LinkedList<>()빈 LinkedList 생성 new LinkedList<>(alist)alist의 모든 요소를 복사해 새로운 LinkedList 생성괄호 안 인자 생성자의 매개변수 (다른 컬렉션 객체) 효과 다른 컬렉션을 기반으로 초기화 가능
다형성: 상위 인터페이스(List) 타입으로 하위 클래스(ArrayList) 객체를 참조 가능
List list = new ArrayList();
인터페이스 타입(List)으로 선언하면
구현체(ArrayList, LinkedList, Vector)를 쉽게 교체할 수 있습니다.
List list = new ArrayList();
// 나중에 LinkedList로 변경해도 나머지 코드 수정 불필요
list = new LinkedList();
향상된 for문 이용해서 배열 출력하기
int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {
System.out.println(num);
}
BookDto[] books = {
new BookDto("자바 입문", "홍길동"),
new BookDto("스프링 완전정복", "이몽룡")
};
for (BookDto book : books) {
System.out.println(book.getTitle() + " / " + book.getAuthor());
}