Bibi's DevLog ๐Ÿค“๐ŸŽ

[Java] ๋งตMap - HashMap,LinkedHashMap,Treemap ๊ฐ„๋‹จ์„ค๋ช…๊ณผ HaspMap์˜ ๋ฉ”์†Œ๋“œ๋“ค ๋ณธ๋ฌธ

๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Java ์ž๋ฐ”

[Java] ๋งตMap - HashMap,LinkedHashMap,Treemap ๊ฐ„๋‹จ์„ค๋ช…๊ณผ HaspMap์˜ ๋ฉ”์†Œ๋“œ๋“ค

๋น„๋น„ bibi 2020. 11. 9. 20:43

์ž๋ฐ” ๋งต - HashMap

wikidocs.net/208. coding-factory.tistory.com/556๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ž๋ฐ”์˜ ๋งตMap ๊ฐœ๋…์€ ํŒŒ์ด์ฌ์˜ ๋”•์…”๋„ˆ๋ฆฌdictionary ๊ฐœ๋…๊ณผ ๋น„์Šทํ•˜๋‹ค.
    ์ฆ‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚คkey : ๊ฐ’value ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค.
    (Associative array, Hash ๋ผ๊ณ ๋„ ํ•œ๋‹ค
  • ํ•ด์‹ฑhashing์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— HashMap์ด๋‹ค.
  • ๋งต์˜ ํŠน์ง•
    • ๋ฆฌ์ŠคํŠธ, ๋ฐฐ์—ด์€ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐ˜๋ฉด,
      ๋งต์€ key๋ฅผ ํ†ตํ•ด value๋ฅผ ์–ป๋Š”๋‹ค.
    • ํ‚ค์™€ ๊ฐ’์€ ๋ชจ๋‘ ๊ฐ์ฒด์ด๋‹ค.
    • ๊ฐ’value์€ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ‚คkey๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์—†๋‹ค.
      (๋งŒ์•ฝ ํ‚ค๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋ฎ์–ด์“ฐ๊ธฐํ•œ๋‹ค)
    • ๋Œ€์‘๊ด€๊ณ„๋ฅผ ์‰ฝ๊ณ„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
    • ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ์— ์ข‹๋‹ค.
  • ๋งต์—๋Š” HashMap, LinkedHashMap, TreeMap ๋“ฑ์ด ์žˆ๋‹ค. ์ง€๊ธˆ์€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ hashmap๋งŒ ์•Œ์•„๋ด„.
    • LinkedHashMap : ์ž…๋ ฅ๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.
    • TreeMap : ์ž…๋ ฅ๋œ key์˜ sort์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.
  • HashMap ์„ ์–ธ
    • HashMap<String, String> map1 = new HashMap<String, String>();
      • HashMap : ๋งต์˜ ์œ ํ˜•.
      • <String, String> : ํ‚ค, ๊ฐ’์— ๋„ฃ์„ ์ž๋ฃŒํ˜•. 
      • map1 : ๋งต์˜ ์ด๋ฆ„.
      • new HashMap<String, String>(); ๋ฅผ ๋„ฃ์–ด ๋Œ€์ž…ํ•œ๋‹ค.
        new์ ˆ์—์„œ <> ์•ˆ์˜ String, String์€ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.
    • HashMap<String, String> map2 = new HashMap<>(map1);
      • (๋งต ๋ณต์‚ฌ) map1์˜ ๋ชจ๋“  ๊ฐ’์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด HashMap์ธ map2 ์„ ์–ธ.
    • HashMap<String, String> map3 = new HashMap(10, 0.7f);
      • (10, 0.7f) : (์ดˆ๊ธฐ์šฉ๋Ÿ‰capacity, load factor)์— ํ•ด๋‹น. ๋” ๊ตฌ๊ธ€๋งํ•ด๋ณด๊ธฐ
    • HashMap<String, String> map4 = new HashMap<String, String>{{
          put("a","b");
      }};
      • "a","b"์™€ ๊ฐ™์ด map4์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • put() : ๋งต์— ๊ฐ’ ์ž…๋ ฅ 
    • map.put("์‚ฌ๋žŒ", "people");
      map.put("๊ณ ์–‘์ด", "cat");
  • get() : ๋งต์—์„œ key์— ํ•ด๋‹นํ•˜๋Š” value๊ตฌํ•˜๊ธฐ. key์— ํ•ด๋‹นํ•˜๋Š” value๋ฅผ ๋ฐ˜ํ™˜.
    • map.get("์‚ฌ๋žŒ");     // "people"
  • containsKey() : ๋งต์—์„œ key๊ฐ€ ์žˆ๋Š”์ง€ ํƒ์ƒ‰ํ•˜๊ธฐ. ์žˆ์œผ๋ฉด true,์—†์œผ๋ฉด false ๋ฐ˜ํ™˜.
    • map.containsKey("์‚ฌ๋žŒ");    //  true
  • remove() : ๋งต์—์„œ key์— ํ•ด๋‹นํ•˜๋Š” key,value์Œ์„ ์‚ญ์ œํ•˜๊ณ  value๊ฐ’์„ ๋ฐ˜ํ™˜.
    • map.remove("์‚ฌ๋žŒ");     // ํ•ด์‰ฌ๋งต map์—์„œ "์‚ฌ๋žŒ"="people" ์Œ์€ ์‚ญ์ œ๋˜๊ณ  "people"์ด ๋ฐ˜ํ™˜๋จ.
    • ์˜ค์ง key๊ฐ’์œผ๋กœ๋งŒ map์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • clear() : ๋งต์˜ ๋ชจ๋“  ๊ฐ’์„ ์ œ๊ฑฐ.
  • size() : ๋งต์˜ ์š”์†Œ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜.
    • map.size();   // "์‚ฌ๋žŒ" ํ•ญ๋ชฉ์€ ์‚ญ์ œ๋˜์—ˆ์œผ๋ฏ€๋กœ map์˜ ์š”์†Œ์˜ ๊ฐฏ์ˆ˜๋Š” 1์ด๋‹ค.
  • ๋งต์˜ ๊ฐ’ ์ถœ๋ ฅ
    • System.out.println(map);   // {์‚ฌ๋žŒ=people, ๊ณ ์–‘์ด=cat}
      • : ๋งต ์ „์ฒด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    • ๊ทธ ์™ธ .keyset(), values(), get(key).. ๋“ฑ ๋งต ์ „์ฒด๋ฅผ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜,
      key๋ฅผ ๊ฐ€์ง€๊ณ  value๋งŒ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ item์ „์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ž๋ฐ” ํ•ด์‰ฌ๋งต ๋ฉ”์†Œ๋“œ๋“ค ์ •๋ฆฌ. (๋กœ๋”ฉ ๋Š๋ฆผ):  junjangsee.github.io/2019/09/18/java/hashmap-Method/ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

(์‹ฌํ™”)ํ•ด์‹œ๋งต์˜ ๋™์ž‘์›๋ฆฌ ์„ค๋ช… :  d2.naver.com/helloworld/831311 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.