List에 내용물이 String이나 int가 아닌 경우 정렬

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
ArrayList<HashMap<StringString>> items = new ArrayList<HashMap<StringString>>();
 
 
Collections.sort(items, new Comparator<HashMap<StringString>>() {
            @Override
            public int compare(HashMap<StringString> first, HashMap<StringString> second) {
                
                int firstValue = Integer.valueOf(first.get("ORDER_BY"));
                int secondValue = Integer.valueOf(second.get("ORDER_BY"));
 
                if (firstValue > secondValue) {
                    return -1;
                } else if (firstValue < secondValue) {
                    return 1;
                } else /* if (firstValue == secondValue) */ {
                    return 0;
                }
                
            }
        });
cs

 

 

물론 비교를 compareTo로 해도 되긴하는데 내경 우에는 700 60 500의 값이 비교될 때 

 

60이 500보다 우선순위로 정렬되는 기이현상으로 인하여 

 

if else if로 구현하였음

+ Recent posts