여러 유용한 알고리즘을 구현한 메소드들을 제공함. 이 메소드들은 제네렉 기술을 사용하여 작성되었으며, 정적 메소드의 형태로 되어 있음. 메소드의 첫 번째 매개 변수는 알고리즘이 적용되는

컬렉션이 됨.

유용한 알고리즘 중에서 세개만 뽑아보자면

정렬, 섞기, 탐색이 있음

정렬 데이터를 어떤 기준에 의하여 순서대로 나열하는 것 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);
    }
}

Untitled

사용자 클래스의 객체 정렬하기

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를 기준으로 내림차순 정렬함
    }
}

Untitled

섞기

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);
    }
}

Untitled