Collection클래스는 여러 유용한 알고리즘을 구현한 메소드들을 제공한다.
1. 정렬(Sorting)
2. 섞기(Shuffling)
3. 탐색(Searching)
Collection 클래스의 정렬은 속도가 비교적 빠르고 안정성이 보장되는 합병 정렬을 이용한다.
Collection 클래스의 sort( ) 메소드는 List 인터페이스를 구현하는 컬렉션에 대하여 정렬을 수행한다.
->sort( )를 호출하여 정렬한다.
import java.util.*;
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 number - s.number;
}
}
public class SortTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student array[] ={ new Student(20090001, "김철수"),
new Student(20090002, "이철수"),
new Student(20090003, "최철수")
};
List<Student> list = Arrays.asList(array);
Collections.sort(list);
System.out.println(list);
}
}
정렬의 반대 동작을 한다. 즉 원소들의 순서를 랜덤하게 만든다. 게임을 구현할 때 유용하다.(카드 게임에서 카드를 랜덤하게 섞을 때 사용
import java.util.*;
public class Shuffle {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list = new ArrayList<Integer>();
for(int i=1;i<=10;i++)
{
list.add(i);
}
Collections.shuffle(list);
System.out.println(list);
}
}
리스트 안에서 원하는 원소를 찾는 것.
import java.util.*;
public class Search {
public static void main(String[] args) {
// TODO Auto-generated method stub
int key=50;
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<100;i++)
{
list.add(i);
}
int index = Collections.binarySearch(list, key);
System.out.println("탐색의 반환값 =" + index);
}
}