20. Collections Framework (컬렉션 프레임워크) [ JAVA ]

duck-ach·2022년 8월 9일
0

JAVA

목록 보기
20/27

Collection Framework

특징

  • java.util.Collections에 소속되어 있다.
  • 모두 static 메소드로 구성되어있다.
  • 컬렉션 타입의 객체에 대한 객체생성, 정렬, 병합, 검색 등의 알고리즘을 구현한다.

Collection Framework의 주요 메소드

binarySearch()

1) 지정된 컬렉션의 값을 찾아준다.
2) indexOf() 메소드와 동일하다.
3) 이진 적색 알고리즘을 사용해 인덱스 '0 → 끝' 순서로 값을 검색해서 최초 검색된 값의 인덱스를 반환한다.
4) 이진 검색(binary search)을 이용하므로 검색 속도가 매우 빠르다. 단, 크기순으로 정렬이 되어 있어야 한다.

public static void main(String[] args) {
List<String> movies = new ArrayList<String>();
	movies.add("아바타");
	movies.add("쇼생크탈출");
	movies.add("명량");
	movies.add("에일리언");
	movies.add("여인의향기");
    
    // Iterator를 이용해 순환 출력
    printMovies(movies); // 아바타 → 쇼생크탈출 → 명량 → 에일리언 → 여인의향기 → 여인의향기

    
    // movie 리스트를 오름차순 정렬
    Collections.sort(movies);
	printMovies(movies); // 명량 → 쇼생크탈출 → 아바타 → 에일리언 → 여인의향기 → 여인의향기
    
    // movie 리스트를 내림차순 정렬
    Collections.reverse(movies);
	printMovies(movies); // 여인의향기 → 에일리언 → 아바타 → 쇼생크탈출 → 명량 → 명량
    
    // 특정 요소의 인덱스 반환. 아바타의 인덱스 값을 알려준다.
    int idx = Collections.binarySearch(movies, "아바타");
	System.out.println(idx); // 2
 }
 
public static void printMovies(List<String> list) {
		
	Iterator<String> itr = list.iterator();
		while(itr.hasNext()) {	
			String movie = itr.next();
			System.out.print(movie + " → ");
			if(itr.hasNext() == false) {
				System.out.println(movie);
			}
		} 
}

max() / min()

지정된 컬렉션의 가장 큰 요소 / 가장 작은 요소를 반환한다.

sort()

지정된 컬렉션을 오름차순으로 정렬한다.

shuffle()

지정된 컬렉션의 값을 랜덤으로 뒤섞어준다.

disjoint()

두 개의 컬렉션을 비교해서 일치하는 값이 하나도 없으면 true, 하나라도 있으면 false 반환

copy()

1) 지정된 컬렉션의 모든 요소를 새로운 컬렉션으로 복사해서 반환한다.
2) copy(dest, source)로 인자를 전달한다.
3) dest.size()가 source.size()보다 작으면 Error
4) 전체 배열의 크기가 아니고 size()를 기준으로 에러 여부가 발생한다.
5) 기존 dest 배열의 앞쪽에 삽입한다.

reverse()

지정된 컬렉션의 순서를 역으로 변경한다.

profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

0개의 댓글