๐ฃ Java์์ Map ์ํํ๋ ๋ฐฉ๋ฒ ๐ฃ
์๋ฐ์์ Map์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ฆด ๋ entrySet(), keySet() ๊ทธ๋ฆฌ๊ณ values()๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ๊บผ๋ด์ฌ ์ ์๋ค.
- entrySet() : Map.Entry ํด๋์ค์ ์์ ๋ฐํ. entry.getKey() ๋ key๋ฅผ ๋ฐํํ๊ณ , entry.getValue()๋ value ๋ฆฌํด
- keySet() : ๋งต์ ์๋ ๋ชจ๋ keys๋ฅผ set์ผ๋ก ๋ฐํ
- values() : ๋งต์ ์๋ ๋ชจ๋ values๋ฅผ set์ผ๋ก ๋ฐํ
Map ์ธํ
Map<Integer, String> map = new HashMap<>();
@BeforeEach
void setUp() {
map.put(1, "๋ธ๊ธฐ");
map.put(2, "์ฌ๊ณผ");
map.put(3, "๊ทค");
map.put(4, "๋ฐ๋๋");
map.put(5, "์๋ฐ");
}
for๋ฌธ ์ฌ์ฉ ๋ฐฉ๋ฒ
1. entrySet()
@Test
void forEachAndEntrySet() {
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
2. keySet()
@Test
void forEachAndKeySet() {
for (Integer key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
3. values()
@Test
void forEachAndValues() {
for (String value : map.values()) {
System.out.println("value : " + value);
}
}
Iterator ์ฌ์ฉ ๋ฐฉ๋ฒ
4. entrySet()
@Test
void IteratorAndEntrySet() {
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
5. keySet()
@Test
void IteratorAndKeySet() {
Iterator<Integer> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
System.out.println(key + " : " + map.get(key));
}
}
6. values()
@Test
void IteratorAndValues() {
Iterator<String> iterator = map.values().iterator();
while (iterator.hasNext()) {
String value = iterator.next();
System.out.println("value : " + value);
}
}
๋๋ค์ ์คํธ๋ฆผ ์ฌ์ฉ ๋ฐฉ๋ฒ
7. forEach()์ ๋๋ค
@Test
@DisplayName("๋๋ค_key value ๋๊ฐ ๋ค ์กฐํ")
void lambdaAndKeyValue() {
map.forEach((k, v) -> System.out.println((k + " : " + v)));
}
@Test
@DisplayName("๋๋ค_key๋ก ์กฐํ")
void lambdaAndKeys() {
map.keySet().forEach(k -> System.out.println((k + " : " + map.get(k))));
}
@Test
@DisplayName("๋๋ค_value๋ง ์กฐํ")
void lambdaAndValues() {
map.values().forEach(v -> System.out.println(("value : " + v)));
}
8. ์คํธ๋ฆผ API
@Test
void streamApi() {
map.entrySet().stream()
.forEach(e -> System.out.println(e.getKey() + " : " + e.getValue()));
}
์ถ๋ ฅ๊ฒฐ๊ณผ
![]() |
![]() |
entrySet(), keySet() ๊ฒฐ๊ณผ | values() ๊ฒฐ๊ณผ |
entrySet() ๋๋ keySet()์ ํ์ฉํ ๊ฒฝ์ฐ key, value ๋ ๋ค ์กฐํ๊ฐ ๊ฐ๋ฅํ์ง๋ง (key๋ก value๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์)
values()๋ ๊ฐ๋ง ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค. ๋ง์ฝ, key๋ value ๋ ๋ค ํ์ํ ๊ฒฝ์ฐ entrySet()์ ์ฌ์ฉํ๋ ๊ฒ์ด keySet()์ ์ฌ์ฉํ๋ ๊ฒ ๋ณด๋ค ๋ ์ข์๋ฐ, value๋ฅผ ๊ฐ์ ธ์ค๊ธฐ์ํด get() ๋ฉ์๋๋ฅผ ์ถ๊ฐ๋ก ํธ์ถํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ๊ณ ์๋ฃ
1. https://www.baeldung.com/java-iterate-map
'์คํฐ๋ > ์๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๋ฌด ํจ์จ์ ์ฌ๋ ค์ฃผ๋ Intellij ๋จ์ถํค (์๋์ฐ ๊ธฐ์ค) (1) | 2024.02.25 |
---|---|
Spring Boot file upload download rest api ์์ - 1 (0) | 2024.02.19 |
์๋ฐ iterators๋? (0) | 2024.02.11 |
Lambdas and Stream (0) | 2023.01.19 |
Garbage Collection in Java (0) | 2022.10.28 |
๋๊ธ