티스토리 뷰
MyData -> ArrayList 자료가 들어있는 원본데이터
arrayList -> sort에 사용될 colums데이터를 넣는 용도
sortType -> sort가 역순인지 정순인지의 요구가 담겨있음. 0정순.1역순
sortedList -> 정렬이 완료된 데이터
for(int i = 0 ; i < MyData.size(); i++) {
arrayList.add("sort에 쓸 colums의 row원본 데이터");
}//end for
if(sortType == 0 ) {
Collections.sort(arrayList); //이렇게 하면 그냥 정순정렬
} else {
Comparator comparator = Collections.reverseOrder(); //reverseOrder를 해야만 역순정렬이 된다
Collections.sort(arrayList,comparator); //colums데이터와 윗줄의 정렬조건
}//endif
for(int j = 0; j < arrayList.size() ; j++) {
String tmp = (String)arrayList.get(j); //정렬된 colums의 i 번째 데이터를..
for(int k = 0 ; k < "원본데이터".size() ; k++) {
String tmp2 = "원본데이터.get(k).getMoney(); "; // sort에 쓸 colums의 row 원본 데이터와
if(tmp.equals(tmp2)) { //비교하여 같으면
sortedList.add("원본데이터.get(k)); // 정렬완료용 변수에 해당 정렬된값과 그모든 row데이터를 해당위치
//에 넣어 정렬을 완료
}
}
//한마디로 원본데이터에서 정렬에 쓰일 한개 컬럼을 List로 뽑아서 정렬시키고
//그 정렬된 위치를 바탕으로 원본데이터의 row값을 모두 그 정렬위치에 집어넣어 최종정렬을 완료
하지만 위코드에는 결정적인 문제가 있으니....
바로 colum이 동일값을 같고있을때에는 데이터가 중복된다.
3개의 "홍길동"이 있다면 정렬한값은 "홍길동"이 9개가 나온다..
유니크한 값으로 정렬시킬때만 유용하게 쓸 수있겠다.
중복값도 정상적으로 처리하기 위해서는 tag를 붙이거나 key,value매칭을 하던지.. 뭐 그래야 한다는데...
아직 모르겠음.
[출처]http://devbible.tistory.com
[원본]http://devbible.tistory.com/14
'Development' 카테고리의 다른 글
[Android] EditText 의 커서위치 설정 (0) | 2010.07.05 |
---|---|
[Java] Arrays 를 이용한 ArrayList 정렬 (0) | 2010.07.02 |
[Android] java.lang.IllegalStateException (0) | 2010.07.01 |
[Java] Zip 압축 풀기 (0) | 2010.06.30 |
[Android] 키패드 보이고 숨기기 (2) | 2010.06.29 |
- Total
- Today
- Yesterday