여러 유용한 알고리즘을 구현한 메소드들을 제공함. 이 메소드들은 제네렉 기술을 사용하여 작성되었으며, 정적 메소드의 형태로 되어 있음. 메소드의 첫 번째 매개 변수는 알고리즘이 적용되는
컬렉션이 됨.
유용한 알고리즘 중에서 세개만 뽑아보자면
정렬, 섞기, 탐색이 있음
정렬 데이터를 어떤 기준에 의하여 순서대로 나열하는 것 Collections 클래스의 정렬은 속도가
비교적 빠르고 안정석이 보장되는 합병 정렬을 이용함.
문자열 정렬하기
package ex13;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Sort {
public static void main(String[] args) {
String[] sample = {"i", "walk", "the", "line"};
List<String> l = Arrays.asList(sample); // 배열을 리스트로 변경
Collections.sort(l); // 정렬 수행
System.out.println(l);
}
}

사용자 클래스의 객체 정렬하기
package ex13;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Student implements Comparable<Student> {
int number;
String name;
public Student(int number, String name) {
this.number = number;
this.name = name;
}
public String toString() {
return name;
}
public int compareTo(Student s) {
return s.number - 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); // 정렬하면 number를 기준으로 내림차순 정렬함
}
}

섞기
package ex13;
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 = 1; i <= 10; i++) {
list.add(i);
}
Collections.shuffle(list);
System.out.println(list);
}
}
