2016년 3월 28일 월요일

Java Collection - List 용법

주요 메소드

List로부터 array 만들기
  • List의 toArray() 메소드를 사용한다.

List<String> list = new ArrayList<String>();
list.add("India");
list.add("Switzerland");
list.add("Italy");
list.add("France");
String[] countries = list.toArray(new String[list.size()]);


Array(배열)로부터 List 만들기
  • Arrays.asList() 메소드를 사용한다.

String[] array = {"India", "Switzerland", "Italy", "France"};
List<String> list = Arrays.asList(array);


List sorting 하기
  • Collections의 static method를 사용한다. (interface인 Collection이 아니다)

List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(3);
list.add(8);
list.add(1);
Collections.sort(list);


  • 만일 custom class에 대해서 Collections.sort()를 사용하고 싶으면 그 객체가 Comparable<T>를 implements (compareTo() 메소드를 overwrite해야 한다) 하거나, 

public class MyData implements Comparable {
...
    @Override
    public int compareTo(MyData other) {
        // 0을 반환하는 케이스는 필요하면 넣으면 된다.
        return (this.data <= other.data) ? -1 : 1; 
    }
...


  • 아니면 Comparator<T>를 (주로 anonymous로) 정의하여 sort() 메소드 호출시 함께 넣어준다. (compare()를 overwrite한다)

Collections.sort(list, new Comparator<MyData>() {
    @Override
    public int compare(MyData lhs, MyData rhs) {
        if (lhs < rhs) return -1;
        else if (lhs == rhs) return 0; 
        else return 1;
    });




댓글 없음:

댓글 쓰기