[JAVA] List<Map<String, Object» 정렬
이번 포스팅은 List<Map<String, Object>>
를 정렬 하는 방법이다.
1. Comparator를 사용
//정렬할 리스트
List<Map<String, Object>> list = = new ArrayList<>();
list..sort(
Comparator.comparing(
(Map<String, Object> map) -> (String)map.get("CREATEDATE")
).reversed() //reversed는 내림차순이다. reversed를 지우면 오름차순이다.
);
//여러 컬럼을 조건으로 정렬
list.sort(
Comparator.comparing(
(Map<String, Object> map) -> (String)map.get("CREATEDATE")
).thenComparing(
(Map<String, Object> map) -> (String)map.get("ID")
).reversed()
);
2. PriorityQueue를 사용
//정렬할 리스트
List<Map<String, Object>> list = = new ArrayList<>();
PriorityQueue<Map<String, Object>> queue =
new PriorityQueue<>((o1, o2) ->
StringUtils.compare(String.valueOf(o1.get("CREATEDATE")), String.valueOf(o2.get("CREATEDATE")))
* -1); //여기서 -1은 내림차순, -1을 없애면 오름차순
queue.addAll(list);
//생성일이 가장 최신인 데이터
Map<String, Object> result = queue.poll(); //poll은 데이터를 지우고 꺼내고 queue.peek() 로 바꾸면 데이터를 지우지 않고 꺼낸다.
Comments