안드로이드로 개발하면서 정렬기능을 사용할때가 있는데요, 아래처럼 구현하면 별다른 시간투자없이 한방에 해결됩니다. 예전에는 quick sort니 bubble sort니 자료구조를 배우면서 구현했었는데 이제는 API단에서 다 제공해주니 개발시간이 점점단축되네요.
먼저 정렬에 사용될 자료의 구조입니다.
public class Person {
// 이름
public String name;
// 전화번호
public String phoneNumber;
// 전체통화수
public int totalCall;
// 전체 통화시간
public int totalDuration;
// 마지막 통화 날짜 및 시간
public Long lastContact;
}
// Activity 클래스
public class MainActivity extends AppCompatActivity {
// Person 자료를 가지고 있을 ArrayList 선언
private ArrayList<Person> personList = null;
...
// personList에 내용은 들어있다고 가정합니다.
}
먼저 Integer 타입의 sort 방법입니다. 정렬에 사용될 Comparator를 하나 만들어 주고요, 이걸 호출해 주면 끝납니다.
// 호출 예제
Collections.sort(personList, sortByTotalCall);
// 역순으로 정렬시 호출
Collections.reverse(personList);
// Integer type sorting example
private final static Comparator<Person> sortByTotalCall= new Comparator<Person>() {
@Override
public int compare(Person object1, Person object2) {
return Integer.compare(object1.totalCall, object2.totalCall);
}
};
보시면 아시겠지만 데이터 타입별로 compare 를 호출할 클래스를 별도로 지정해 줘야하는데요,
Int 타입이면 Integer.compare
Long 타입이면 Long.compare
Float 타입이면 Float.comare
String 타입이면 Collator.getInstance().compare
요렇게 호출해 주면되어요.
정렬문제 쉽게 해결되죠?
이상 안드로이드에서 Comparator 를 활용한 sorting 문제 해결 방법이었습니다.
'개발 > 앱' 카테고리의 다른 글
SPSS 사용법 #2 변수이름과 데이터 입력하는 방법 (0) | 2017.06.21 |
---|---|
SPSS 사용법 #1 SPSS 체험판 설치하는 방법 (0) | 2017.06.20 |
현재폭망중인 '용사는열공중' 1인개발게임 - 단어공부 게임하면서 하세요. (2) | 2017.06.17 |
소중한 사람들 인맥관리 어플 (안드로이드용) (1) | 2017.06.16 |
안드로이드 스튜디오 커스텀 폰트 적용방법(Android Studio custom font) (2) | 2017.06.14 |
헬로우 큐브 - 오른쪽 왼쪽 순발력 암기력 게임 (0) | 2017.06.12 |
풋볼데이 접속장애 보상선물 대박 받음 (U-20 대표팀 16강 진출기념선물) (0) | 2017.05.26 |
3D 미로찾기게임 - 수탉을 찾아서 (닭 미로찾기 3D) (0) | 2017.05.26 |
최근댓글