반응형
[java] lambda 를 이용한 정렬(List<map> 형태)
public static void main(String[] args) {
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> map2 = new HashMap<>();
Map<String, Object> map3 = new HashMap<>();
Map<String, Object> map4 = new HashMap<>();
map1.put("name","네이버");
map1.put("date","2019-01-01");
map2.put("name","카카오");
map2.put("date","2019-04-01");
map3.put("name","구글");
map3.put("date","2019-03-01");
map4.put("name","페이스북");
map4.put("date","2019-02-01");
List<Map> list = new LinkedList<>();
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
System.out.println(list);
list = list.stream().sorted((o1, o2) -> o1.get("date").toString().compareTo(o2.get("date").toString()) ).collect(Collectors.toList());
System.out.println(list);
}
결과
[{date=2019-01-01, name=네이버}, {date=2019-04-01, name=카카오}, {date=2019-03-01, name=구글}, {date=2019-02-01, name=페이스북}]
[{date=2019-01-01, name=네이버}, {date=2019-02-01, name=페이스북}, {date=2019-03-01, name=구글}, {date=2019-04-01, name=카카오}]
오름차순으로 정렬하고 싶다면 o1과 o2의 위치를 바꿔주면 된다.
list = list.stream().sorted((o1, o2) -> o2.get("date").toString().compareTo(o1.get("date").toString()) ).collect(Collectors.toList());
System.out.println(list);
결과
[{date=2019-01-01, name=네이버}, {date=2019-04-01, name=카카오}, {date=2019-03-01, name=구글}, {date=2019-02-01, name=페이스북}]
[{date=2019-04-01, name=카카오}, {date=2019-03-01, name=구글}, {date=2019-02-01, name=페이스북}, {date=2019-01-01, name=네이버}]
끝
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[intellij] mybatis autowired mapper 빨간불 없애기 (0) | 2019.10.17 |
---|---|
[java] List 안에 Map value 찾기(lambda 사용) (0) | 2019.10.13 |
[Springboot] spring bean과 싱글톤(singleton) (0) | 2019.10.01 |
[jenkins] gitlab 과 jenkins webhook 으로 자동빌드 연결 (2) | 2019.09.25 |
[aws] DMS(Database Migration Service) 이용시 주의사항 (5) | 2019.09.24 |
댓글