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