Java Collection Framework
- 자바의 컬렉션(모음)객체들을 다루기 위해 제공되는
- 재사용 가능한 클래스 또는 인터페이스를 통칭
- 라이브러리처럼 사용됨
List 인터페이스
- 순서(인덱스)가 존재 = 인덱스를 이용해 원하는 위치에 접근 가능
- 중복 저장 가능
LinkdeList
List 인터페이스를 구현하고 있는 클래스
- Stack, Vector, LinkedList, ArrayList 등
LinkedList → Stack, Queue
List 정렬
- Collection.sort( ) 메서드를 이용
- 기본적으로 오름차순
- 정렬방식을 변경하려면 정렬방식을 결정하는 객체를 만들어서
- Collection.sort( ) 메서드에 매개변수로 넘겨주면 됨
Collection.sort(list) : 오름차순
Collection.sort(list, new Desc()); : 내림차순(외부정렬자)
- 정렬과 관련된 인터페이스 : Comparable | Comparator
Comparable
- ~~T03_ListSortTest 참고~~
- 객체 자체에 정렬 기능을 넣기 위해서 구현
- Comparable에서는 compareTo( ) 메서드 구현
compareTo(T o) : 현재 객체(this)와 대상객체(o)의 순서를 비교
결과값 : 양수(오름차순) | 음수 (내림차순) | 0 (동일)
Comparator
- ~~T02_ListSortTest 참고~~
- 정렬 기준을 별도로 구현하고 싶을 때 구현, 외부정렬자
- Comparator에서는 compare( ) 메서드 구현
compare(T o1, T o2) : 첫 번째 객체(o1)와 두번째 객체(o2)의 순서 비교
결과값 : 양수(오름차순) | 음수 (내림차순) | 0 (동일)


- Wrapper 클래스에서 정의하는 compareTo( ) 와 compare( )

ArrayList vs. LinkedList
- ArrayList
- 인덱스로 데이터 접근이 쉽다
- 다 지우고 싶으면 뒤부터 지워야된다.
- 데이터가 삭제되면 앞으로 땡겨져서 빈공간을 채움
- LinkedList
-
처음이나 중간에 삽입, 삭제 빈번할 때 좋음
-
데이터 접근에 시간이 더 걸린다.