반응형
- Map의 메서드 설명 + HashMap 사용 예제 + value값으로 검색 예제
1. Map이란?
- key, value 쌍으로 이루어진 데이터의 집합
- 순서가 없고, key는 중복이 안되지만 value는 중복이 가능함
2. Map의 메서드 정리
2.1. clear()
- map의 모든 객체를 삭제함
2.2. put(Object key, Object value)
- key-value를 한 쌍의 세트로 묶어 추가
2.3. putAll(Map m)
- map m의 모든 key-value 세트 추가
2.4. isEmpty()
- map이 비어있는지 확인 후 비어있으면 true, 안 비어있으면 false return
2.5. containsKey(Object key)
- 파라미터로 들어온 key와 일치하는 key가 map에 있는지 확인
2.6. containsValue(Object value)
- 파라미터로 들어온 value와 일치하는 value가 map에 있는지 확이
2.7. equlas(Object o)
- 동일한 map인지 비교
2.8. size()
- map에 저장된 key-value 세트 개수 return
2.9. remove(Object key)
- 파라미터로 들어온 key와 일치하는 key를 가진 key-value 세트 삭제
2.10. entrySet()
- 모든 세트 return
2.11. hashCode()
- 해시코드 return (int 형)
2.12. get(Object key)
- 파라미터로 들어온 key에 해당하는 value return
2.13. keySet()
- map에 저장된 모든 key 객체 return
2.14. values()
- map에 저장된 모든 value 객체 return
3. Map의 종류
- Map의 종류로는 HashMap, HashTable, LinkedHashMap, TreeMap 등이 존재
4. HashMap 사용 예제 1
package CollectionTest.MapTest;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Object> capital = new HashMap<String, Object>();
capital.put("한국", "부산");
capital.put("미국", "워싱턴");
capital.put("일본", "도쿄");
capital.put("중국", "베이징");
capital.put("영국", "런던");
capital.put("한국", "서울");
// "한국" key를 가진 set의 value값을 변경하고 싶으면
// 위와 같이 다시 put 해주면 됨
System.out.println(capital.toString()); // 전체 출력 (String 타입)
System.out.println(capital.entrySet()); // 전체 출력 (Set 타입)
System.out.println(capital.keySet()); // key 객체만 출력
System.out.println(capital.values()); // value 객체만 출력
System.out.println(capital.size()); // map의 사이즈
if(capital.containsKey("한국") == true) { // key값에 "한국"이면 존재하면
Object koreacapital = capital.get("한국"); // key값으로 value값 추출
System.out.println(koreacapital);
}
Map<String, Object> capital2 = new HashMap<String, Object>();
capital2.putAll(capital); // map 복사
capital2.remove("중국"); // key값이 "중국"인 set 삭제
System.out.println(capital.equals(capital2)); // 두개의 map이 같은지 확인
System.out.println(capital2.entrySet()); // captial2 출력
}
}
4.1. 결과
{미국=워싱턴, 일본=도쿄, 영국=런던, 중국=베이징, 한국=서울}
[미국=워싱턴, 일본=도쿄, 영국=런던, 중국=베이징, 한국=서울]
[미국, 일본, 영국, 중국, 한국]
[워싱턴, 도쿄, 런던, 베이징, 서울]
5
서울
false
[미국=워싱턴, 한국=서울, 일본=도쿄, 영국=런던]
5. Map 예제 2
- Map의 메서드 중에 key 값으로 set를 찾아내는 메서드는 존재하지만
- value 값으로 set를 찾아내는 메서드는 따로 존재하지 않아서, 이럴 때는 반복문을 사용해야 함
- 여러가지 방법이 있겠지만, 다음과 같은 방법으로도 가능
package CollectionTest.MapTest;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> player = new HashMap<String, String>();
Map<String, String> koreanPlayer = new HashMap<String, String>();
player.put("메시", "아르헨티나");
player.put("네이마르", "브라질");
player.put("손흥민", "대한민국");
player.put("박지성", "대한민국");
for(Map.Entry<String, String> entry : player.entrySet()) {
if(entry.getValue() == "대한민국") {
koreanPlayer.put(entry.getKey(), entry.getValue());
}
}
System.out.println(koreanPlayer.entrySet());
}
}
- "player" map에서 value값이 "대한민국"인 set들을 모아 새로운 "koreanPlayer" map 생성
5.1. 결과
[손흥민 = 대한민국, 박지성 = 대한민국]
반응형
'JAVA > 기본 문법' 카테고리의 다른 글
[JAVA] 컬렉션 프레임워크 - 3. List (0) | 2022.04.13 |
---|---|
[JAVA] 컬렉션 프레임워크 - 2. Set (+ iterator) (0) | 2022.04.12 |
[JAVA] 컬렉션 프레임워크 (Collection Framework) (0) | 2022.04.12 |
[JAVA] Overloading, Overriding (0) | 2022.03.31 |
[JAVA] 상속(Inheritance), super (0) | 2021.08.17 |
↓ 클릭시 이동
1. Map이란?2. Map의 메서드 정리2.1. clear()2.2. put(Object key, Object value)2.3. putAll(Map m)2.4. isEmpty()2.5. containsKey(Object key)2.6. containsValue(Object value)2.7. equlas(Object o)2.8. size()2.9. remove(Object key)2.10. entrySet()2.11. hashCode()2.12. get(Object key)2.13. keySet()2.14. values()3. Map의 종류4. HashMap 사용 예제 14.1. 결과5. Map 예제 25.1. 결과