본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)/Java 기본

Java List Map 객체 정렬하기

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2022. 9. 5.

 

너무 쉬운 기능, Comparator를 얼마나 이해하고 잘 쓰냐에 따라 달려있습니다.

스트림(stream)으로 풀면 아래와 같습니다.

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;

public class SortItem {

    public static void main(String[] args) {

        List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
        HashMap<String, Object> item = new HashMap<>();
        item.put("index", 1);
        item.put("text", "abcd");
        list.add(item);

        item = new HashMap<>();
        item.put("index", 5);
        item.put("text", "efg");
        list.add(item);

        item = new HashMap<>();
        item.put("index", 2);
        item.put("text", "hij");
        list.add(item);
        
        //#1 스트림 활용한 정렬 방법
        Comparator<HashMap<String, Object>> todo = Comparator.comparing( 
            (HashMap<String,Object> arg)-> {
                return Integer.parseInt(arg.get("index").toString());
            }
        );   

        list.stream().sorted(todo).forEach(System.out::println);
    }

}

 

아니면 Collections.sort 메소드를 사용해도 가능합니다.

자바스크립트(Javascript)에서 배열을 정렬하는 sort 함수를 사용한 사람이라면 아래가 더 쉽다고 느낄 거 같습니다.

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;

public class SortItem {

    public static void main(String[] args) {

        List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
        HashMap<String, Object> item = new HashMap<>();
        item.put("index", 1);
        item.put("text", "abcd");
        list.add(item);

        item = new HashMap<>();
        item.put("index", 5);
        item.put("text", "efg");
        list.add(item);

        item = new HashMap<>();
        item.put("index", 2);
        item.put("text", "hij");
        list.add(item);
        
        //#1 스트림 활용한 정렬 방법
        //Comparator<HashMap<String, Object>> todo = Comparator.comparing( 
        //    (HashMap<String,Object> arg)-> {
        //        return Integer.parseInt(arg.get("index").toString());
        //    }
        //);  

        //#2 Collections의 sort 메서드를 활용한 방법
        Collections.sort(list, (v1, v2)-> {
            int a = Integer.parseInt(v1.get("index").toString());
            int b = Integer.parseInt(v2.get("index").toString());
            return a - b;
        });
        list.stream().forEach(System.out::println);
        
    }

}

 

틀린점 또는 궁금한점은 언제든 연락주세요! 👻

끝!

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글