1 ๋ถ„ ์†Œ์š”

๐Ÿ“š ALGORITHM


๐Ÿ“š HashMap

HashMap

HashMap์€ Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ Map ์ปฌ๋ ‰์…˜์ด๋‹ค.
Map์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
Key ๊ฐ’๊ณผ Value ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ Entity ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ
Key๊ฐ’์€ ์ค‘๋ณต์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ Value๊ฐ’์€ ์ค‘๋ณต์ด ํ—ˆ์šฉ๋œ๋‹ค.
๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค. ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ค‘์— ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์œ ๋ฆฌํ•จ

HashMap ์ฃผ์š” ๋ฉ”์„œ๋“œ

HashMap ์„ ์–ธ

    // key : String, value : Integer
    HashMap<String, Integer> map = HashMap<String, Integer>();

HashMap ๊ฐ’ ์ถ”๊ฐ€

  • map.put(key๊ฐ’, value๊ฐ’);
    // put(key๊ฐ’, value๊ฐ’)
    map.put("a",123);
    map.put("b",234);

HashMap ๊ฐ’ ์ˆ˜์ •

  • map.put(key๊ฐ’, value๊ฐ’);
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ โ€˜Key๊ฐ’โ€™์ด ๊ฐ™์œผ๋ฉด ๋‚˜์ค‘์— ์ž…๋ ฅํ•œ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.
    // ๊ธฐ์กด์˜ ๊ฐ’์„ ๋ฎ์–ด์“ด๋‹ค.
    map.put("a",555);

HashMap ๊ฐ’ ์‚ญ์ œ

  • map.remove(key๊ฐ’);
  • โ€˜Key๊ฐ’โ€™์ด ๊ฐ™์€ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„ ์‚ญ์ œํ•œ๋‹ค.
  • ๋ฐ˜ํ™˜๊ฐ’ : ์‚ญ์ œํ•œ ์ž๋ฃŒ์˜ value ๊ฐ’
    int value = map.remove("a");
    // value = 555

HashMap ๊ฐ’ ์ฝ๊ธฐ

  • map.get(key๊ฐ’);
  • ๋ฐ˜ํ™˜๊ฐ’ : key๊ฐ’๊ณผ ์ง์ด ๋˜๋Š” value ๊ฐ’
    int value = map.get("b");
    // value = 234

๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€ ๋ฉ”์„œ๋“œ

  • map์— Key๊ฐ’์ด ์กด์žฌํ•˜๋ฉด True, ์•„๋‹ˆ๋ฉด False
    • map.containsKey(key๊ฐ’);
  • map์— Value๊ฐ’์ด ์กด์žฌํ•˜๋ฉด True, ์•„๋‹ˆ๋ฉด False
    • map.containsValue(value๊ฐ’);
  • ๋ฐ˜ํ™˜๊ฐ’ : boolean
    boolean check = map.containsKey("b");
    // check = true
    boolean check_value = map.containsValue(444);
    // check_value = false

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ฝ์–ด์˜ค๊ธฐ

  • ๋ชจ๋“  Key๊ฐ’ ์ฝ์–ด์˜ค๊ธฐ
  • keySet() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ
    for(String key : map.keySet()){
        // Key๊ฐ’์„ ์ด์šฉํ•ด์„œ value ๊ฐ’ ๊ตฌํ•˜๊ธฐ
       int value = map.get(key);
    }


  • ๋ชจ๋“  Value๊ฐ’ ์ฝ์–ด์˜ค๊ธฐ
  • values() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ
  • Key๊ฐ’์€ ์•Œ ์ˆ˜ ์—†๋‹ค.
    for(int value : map.values()){
        // ๋ชจ๋“  value ๊ฐ’ ์ถœ๋ ฅ
        System.out.println(value);
    }


  • ๋ชจ๋“  Key, Value ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
  • EntrySet() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ
    for(Map.Entry<String, Integer> entry : map.entrySet()){
        // ์ˆœ์„œ๋Œ€๋กœ Key๊ฐ’ value๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
        String key = entry.getKey();
        int value = entry.getValue();
    }

์ „์ฒด ์‚ญ์ œ

  • map.clear();
    map.clear();

์ž๋ฃŒ๊ฐ€ ์žˆ๋Š”์ง€ ํŒ๋‹จ

  • map.isEmpty();
  • ๋ฐ˜ํ™˜๊ฐ’ : boolean
  • ์—†์œผ๋ฉด True, ์žˆ์œผ๋ฉด False
    boolean check = map.isEmpty();

ํฌ๊ธฐ

  • HashMap์˜ ์ด ํฌ๊ธฐ
  • ๋ฐ˜ํ™˜๊ฐ’ : int
    int size = map.size();