๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

hashmap ์ •๋ ฌ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

hashmap ์ •๋ ฌ

์š”์ผ์ด 2023. 3. 16. 15:16
๋ฐ˜์‘ํ˜•

 

 

์ถœ์ฒ˜

https://velog.io/@dev-easy/Java-Map%EC%9D%84-Key-Value%EB%A1%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0

 

[Java] Map์„ Key, Value๋กœ ์ •๋ ฌํ•˜๊ธฐ

Java์—์„œ HashMap ์ •๋ ฌ์ด ํ•„์š”ํ•  ๋•Œ, ๊ทธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.์ •๋ ฌ ๊ธฐ์ค€์€ key, value ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.map ์˜ keySet์„ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.์˜ค๋ฆ„์ฐจ์ˆœ ์‹œ์—๋Š” Collection.sort(), ๋‚ด๋ฆผ์ฐจ์ˆœ ์‹œ์—๋Š” Col

velog.io

 

 

 

๊ฐœ์š”

Java์—์„œ HashMap ์ •๋ ฌ์ด ํ•„์š”ํ•  ๋•Œ, ๊ทธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

์ •๋ ฌ ๊ธฐ์ค€์€ key, value ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

1. Key ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

map ์˜ keySet์„ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.
์˜ค๋ฆ„์ฐจ์ˆœ ์‹œ์—๋Š” Collection.sort(), ๋‚ด๋ฆผ์ฐจ์ˆœ ์‹œ์—๋Š” Collection.reverse() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.

import java.util.*;

public class Sort {

    public static void main(String[] args) {

        Map<String, Integer> map = new HashMap<>();

        map.put("A", 10);
        map.put("D", 30);
        map.put("C", 20);
        map.put("B", 40);


        List<String> keySet = new ArrayList<>(map.keySet());

        // ํ‚ค ๊ฐ’์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        Collections.sort(keySet);

        for (String key : keySet) {
            System.out.print("Key : " + key);
            System.out.println(", Val : " + map.get(key));
        }
       
        /*  ๊ฒฐ๊ณผ
            Key : A, Val : 10
            Key : B, Val : 40
            Key : C, Val : 20
            Key : D, Val : 30
         */
        
        

        // ํ‚ค ๊ฐ’์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
        Collections.reverse(keySet);

        for (String key : keySet) {
            System.out.print("Key : " + key);
            System.out.println(", Val : " + map.get(key));
        }
        
        /*  ๊ฒฐ๊ณผ
            Key : D, Val : 30
            Key : C, Val : 20
            Key : B, Val : 40
            Key : A, Val : 10
        */
	}
}

2.Value ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

Value ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ๋Š” comparator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.

comparator๋Š” ๋žŒ๋‹ค ํ‘œํ˜„์‹์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

import java.util.*;

public class Sort {

    public static void main(String[] args) {

		Map<String, Integer> map = new HashMap<>();

        map.put("A", 10);
        map.put("D", 30);
        map.put("C", 20);
        map.put("B", 40);


        List<String> keySet = new ArrayList<>(map.keySet());

        // Value ๊ฐ’์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        keySet.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return map.get(o1).compareTo(map.get(o2));
            }
        });

        for (String key : keySet) {
            System.out.print("Key : " + key);
            System.out.println(", Val : " + map.get(key));
        }

        /*
            ๊ฒฐ๊ณผ
            Key : A, Val : 10
            Key : C, Val : 20
            Key : D, Val : 30
            Key : B, Val : 40
         */

        // Value ๊ฐ’์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
        // ์œ„ comparator ๋žŒ๋‹ค ํ‘œํ˜„์‹์œผ๋กœ
        keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));

        for (String key : keySet) {
            System.out.print("Key : " + key);
            System.out.println(", Val : " + map.get(key));
        }

        /* ๊ฒฐ๊ณผ
            Key : B, Val : 40
            Key : D, Val : 30
            Key : C, Val : 20
            Key : A, Val : 10
         */
	}
}

 

Comments