Collections 클래스는 여러 유용한 알고리즘을 구현한 메소드들을 제공합니다.
1. 정렬(Sorting)
여러 정렬 중 속도가 비교적 빠르고 안정성이 보장되는 합병 정렬을 이용합니다.
- 오름차순 정렬 :
Collections.sort(list)
- 역순 정렬 :
Collections.sort(list, Collections.reverseOrder())
사용자 클래스의 객체 정렬하기
import java.util.*; class Student implements Comparable<Student>{ int number; String name; public Student(int number, String name) { this.number = number; this.name = name; } @Override public String toString() { return name; } @Override public int compareTo(Student o) { return number-o.number; // 정렬을 위한 메소드 } } public class SortTest { public static void main(String[] args) { Student array[] = { new Student(2,"김철수"), new Student(3,"이철수"), new Student(1,"박철수") }; List<Student> list = Arrays.asList(array); // 배열을 리스트로 바꾸는 메소드 Collections.sort(list); // 오름차순 정렬 // Collections.sort(list,Collections.reverseOrder()); // 내림차순 정렬 System.out.println(list); } }

결과 값은 번호 순서대로 정렬됩니다.
2. 섞기(Shuffling)
정렬의 반대 동작으로 정렬을 파괴하고 원소들의 순서를 랜덤하게 만듭니다.
예제
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Shuffle { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 11; i++) { list.add(i); } Collections.shuffle(list); System.out.println(list); } }
3. 탐색(Searching)
리스트 안에서 원하는 원소를 찾는 것입니다.
숫자들의 리스트 탐색하기
import java.util.*; public class Search { public static void main(String[] args) { int key = 50; List<Integer> list = new ArrayList<>(); for (int i = 0; i < 100; i++) { list.add(i); } int index = Collections.binarySearch(list,key); // 문법 System.out.println("탐색의 반환값 ="+index); } }
Share article