Java & Android
Java List 활용
그레이트쪼
2017. 1. 10. 19:45
- 주요 메소드
- http://developer.android.com/reference/java/util/List.html
- add(object), add(location, object), clear(), get(location), isEmpty(), remove(location), remove(object), size(), ...
- List로부터 array 만들기
- List의 toArray() 메소드를 사용한다.
1 2 3 4 5 6 | 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() 메소드를 사용한다.
1 2 | String[] array = {"India", "Switzerland", "Italy", "France"}; List<String> list = Arrays.asList(array); |
- List sorting 하기
- Collections의 static method를 사용한다. (interface인 Collection이 아니다)
1 2 3 4 5 6 | 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해야 한다) 하거나,
1 2 3 4 5 6 7 | public class MyData implements Comparable<MyData> { ... @Override public int compareTo(MyData other) { return (this.data <= other.data) ? -1 : 1; // 0이 없어도 되는지 잘모르겠음 } ... |
- 아니면 Comparator<T>를 (주로 anonymous로) 정의하여 sort() 메소드 호출시 함께 넣어준다. (compare()를 overwrite한다)
1 2 3 4 5 6 7 | 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; // 이번에 0 케이스까지 있다. 있든 없든 상관없는 듯. else return 1; }); |