JAVA/Theory

[Java] HashMap๊ณผ HashSet

ITs Min 2024. 4. 25.

๐Ÿ” HashMap

HashMap์€ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ, ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Value์˜ ์ค‘๋ณต๊ฐ’์€ ํ—ˆ์šฉํ•˜๋‚˜ Key๊ฐ’์ด ์ค‘๋ณต๋  ์ˆ˜๋Š” ์—†๋‹ค.

 

1. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” put(key, value) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํŠน์ • ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” get(key) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
HashMap<String, Integer> scoreMap = new HashMap<>();
scoreMap.put("Alice", 90);
scoreMap.put("Bob", 85);
Alice์˜ ์ ์ˆ˜๋Š” scoreMap.get("Alice")์ด๋‹ค.

 

2. ๋ฐ์ดํ„ฐ ์‚ญ์ œ

  • ํŠน์ • ํ‚ค-๊ฐ’ ์Œ์„ ์‚ญ์ œํ•  ๋•Œ๋Š” remove(key) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ๋Š” clear() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
scoreMap.remove("Bob");
scoreMap.clear(); // ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ

 

3. ๋ฐ์ดํ„ฐ ์ˆ˜์ •

  • ๊ธฐ์กด ๊ฐ’์„ ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•  ๋•Œ๋Š” put(key, newValue) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํŠน์ • ํ‚ค์˜ ๊ฐ’์„ ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” replace(key, newValue) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์˜ˆ์‹œ:
scoreMap.put("Alice", 95); // ๊ธฐ์กด ๊ฐ’ 90์„ 95๋กœ ๋ณ€๊ฒฝ
scoreMap.replace("Alice", 92); // ๊ฐ’์„ 92๋กœ ๋ณ€๊ฒฝ

 

4. ๋ฐ์ดํ„ฐ ์ˆœํšŒ

  • ๋ชจ๋“  ํ‚ค ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” keySet() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ชจ๋“  ๊ฐ’ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” values() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ชจ๋“  ํ‚ค-๊ฐ’ ์Œ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” entrySet() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
for (String key : scoreMap.keySet()) {
    System.out.println(key + "์˜ ์ ์ˆ˜๋Š” " + scoreMap.get(key) + "์ด๋‹ค.");
}

๐Ÿ” HashSet

HashSet์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ œ๊ฑฐ, ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ ๋“ฑ์˜ ์—ฐ์‚ฐ์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

 

1. ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” add(element) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋Š” ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋œ๋‹ค.
HashSet<String> nameSet = new HashSet<>();
nameSet.add("Alice");
nameSet.add("Bob");
nameSet.add("Charlie"); // ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋Š” ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋œ๋‹ค.

 

2. ๋ฐ์ดํ„ฐ ์‚ญ์ œ

  • ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ๋Š” remove(element) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ๋Š” clear() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
nameSet.remove("Bob");
nameSet.clear(); // ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ

 

3. ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

  • ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ๋Š” contains(element) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
boolean hasAlice = nameSet.contains("Alice"); // true

 

4. ๋ฐ์ดํ„ฐ ์ˆœํšŒ

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœํšŒํ•  ๋•Œ๋Š” iterator() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
public Iterator<E> iterator()

Set<String> fruits = new HashSet<String>();
fruits.add("apple");
fruits.add("banana");
fruits.add("kiwi");

Iterator<String> it = fruits.iterator();
while (it.hasNext())
    System.out.println("fruits: " + it.next());

 

'JAVA > Theory' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring] Spring Security  (0) 2024.05.13
[Java] Deque์™€ LinkedList  (0) 2024.04.26
[Java] Stack๊ณผ Queue ๊ทธ๋ฆฌ๊ณ  Deque  (0) 2024.04.25
[MAVEN] SpringMVC ๋ฒ„์ „ 2  (0) 2024.03.05
[MAVEN] SpringMVC ๋ฒ„์ „ 1  (0) 2024.03.05

๋Œ“๊ธ€

TOP

๋Šฆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋• ๋„ˆ๋ฌด ๋Šฆ์€ ๊ฑฐ๋‹ค.