다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다.
Collection Framework 는 Java 의 Interface 를 사용하여 구현한다.
Collection Interface
Iterator 인터페이스를 상속한 Collection은 가장 기본이 되는 인터페이스이다.
Collection 인터페이스는 List와 Set, Queue인터페이스를 가지고 있다.
Collection 인터페이스를 사용하는 이유
일관된 API
프로그래밍 간편화
프로그램 속도 및 품질 향상
아래와 같은 메소드 상속시킨다.
메소드
설명
boolean add(E e)
해당 Collection에 전달된 요소를 추가한다.(선택적 기능)
void clear()
해당 Collection의 모든 요소를 초기화한다.(선택적 기능)
boolean contains(Object o)
해당 Collection이 전달된 객체를 포함하는 지 여부를 반환한다.
boolean equals(Object o)
해당 Collection과 전달된 객체가 같은 지 여부를 반환한다.
boolean isEmpty()
해당 Collection이 비어있는 지 여부를 반환한다.
Iterator<E> iterator()
해당 Collection의 반복자를 반환한다.
boolean remove(Object o)
해당 Collection에서 전달된 객체를 제거한다.(선택적 기능)
int size()
해당 Collection의 요소의 총 개수를 반환하다.
Object[] toArray()
해당 Collection의 모든 요소를 Object타입의 배열로 반환한다.
Collections 클래스
Collection FraneWork에 속하는 클래스를 지원해주는 정적인 클래스이다.
사용하기 위해 아래와 같이 선언합니다.
import java.util.Collections
정적 메소드
1. sort(List L)
리스트 L을 오름차순으로 정렬한다.
publicstaticvoidmain(String[] args){
// List의 Class중 ArrayList을 사용하여 코드작성
ArrayList<Integer> list = new ArrayList<>();
// 값 입력하기for(int i = 0; i < 10; i++){
list.add(i); // ArrayList 값 추가
}
// sort() 메소드를 이용한 정렬하기
Collections.sort(list); // 오름차순 정렬
System.out.println(list); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
}
2. sort(List L, Collections.reverseOrder())
리스트 L을 내림차순으로 정렬한다.
publicstaticvoidmain(String[] args){
// List의 Class중 ArrayList을 사용하여 코드작성
ArrayList<Integer> list = new ArrayList<>();
// 값 입력하기for(int i = 0; i < 10; i++){
list.add(i); // ArrayList 값 추가
}
// sort() 메소드를 이용한 정렬하기
Collections.sort(list, Collections.reverseOrder()); // 내림차순 정렬
System.out.println(list); // [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
}
3. max(List L), min(List L)
리스트 L에서 최대/최소 값을 반환한다.
publicstaticvoidmain(String[] args){
// List의 Class중 ArrayList을 사용하여 코드작성
ArrayList<Integer> list = new ArrayList<>();
// 값 입력하기for(int i = 0; i < 10; i++){
list.add(i); // ArrayList 값 추가
}
System.out.println(Collections.min(list)); // 0
System.out.println(Collections.max(list)); // 9
}
4. shuffle(List L)
리스트 L을 랜덤으로 섞어 준다.
publicstaticvoidmain(String[] args){
// List의 Class중 ArrayList을 사용하여 코드작성
ArrayList<Integer> list = new ArrayList<>();
// 값 입력하기for(int i = 0; i < 10; i++){
list.add(i); // ArrayList 값 추가
}
// 랜덤으로 섞음
Collections.shuffle(list);
System.out.println(list); // [0, 6, 1, 7, 8, 5, 3, 4, 9, 2]
}
5. binarySearch(List L, Key)
오름차순으로 정렬된 리스트 L에서 이진검색을 통해 위치를 반환, 실패시 음수값을 반환한다.
publicstaticvoidmain(String[] args){
// List의 Class중 ArrayList을 사용하여 코드작성
ArrayList<Integer> list = new ArrayList<>();
// 값 입력하기for(int i = 0; i < 10; i++){
list.add(i); // ArrayList 값 추가
}
Collections.sort(list);
System.out.println(Collections.binarySearch(list, 5)); // 5
}
6. disjoint(List L1, List L2)
두 리스트의 값이 완전히 다른지 검사한다, 하나라도 같은 값이 있으면 False 반환한다.
publicstaticvoidmain(String[] args){
// List의 Class중 ArrayList, Stack을 사용하여 코드작성
ArrayList<Integer> list = new ArrayList<>();
Stack<Integer> stack = new Stack<>();
// 값 입력하기for(int i = 0; i < 10; i++){
list.add(i); // ArrayList 값 추가
}
for (int i = 9; i >= 0; i--) {
stack.push(i); // Stack 값 추가
}
System.out.println(Collections.disjoint(list, stack));
}