1.Map이란
데이터(자료)를 저장할 때 각각의 자료들을 구분짓는 고유의 값(키)을 정하여 해당 값으로 접근하는 실제 객체를 구분지으려고 할 때 사용하는 자료구조 Collection은 상속받지 않지만, 비슷한 역할 수행.
Map : (key)와 값(Value)를가짐
키 = Set과 유사(중복 x)
값 = List와 유사(중복O)
제네릭스를 통해 키와 값 각각의 자료형을 정할 수 있다.
HashMap, TreeMap, Properties가 있다.
1)HashMap
Map의 Key는 HashSet의 특징을 띄고있고 Hash라는 단어가 포함된 컬렉션 사용시 내부에 저장되는key는
equals와 HashCode가 오버라이딩 되어있어야 한다.
(String, Wrapper Class는 equals와 hashCode가 이미 오버라이딩 되어있어서 key로 많이 사용한다. )
2) TreeMap
Map의 Key는 TreeSet의 특징을 띈다.
숫자(Integer, Double) 타입일 경우 값으로 정렬
문자열(String) 타입일 경우 유니코드로 정렬
정렬을 위해 java.lang.Comparable을 구현한 객체 요구 그러지 않을 경우 ClassCastException 발생
(Integer, Double, String 모두 Comparable 인터페이스를 통해 오름차순이 구현되어 있음)
3)Map의 주요 메소드 (k = Key, v = Value)
Map명.put(k, v); : 주어진 키로 값을 추가
Map명.constainsKey(k); : 주어진 키가 있는지 확인
Map명.constainsValue(v);: 주어진 값이 있는지 확인
Map명.keySet(); : 모든 키를 Set객체에 담아 리턴
Map명.values(); : 모든 값을 Collection에 담아 리턴
Map명.entrySet(); = 키와 값의 쌍으로 구성된 모든 Map.Entry객체를 Set에 담아 리턴(Set 객체로 받아야됨)
Map명.get(key); : 해당 키의 값을 리턴
Map명.isEmpty(); : 맵이 비었는지 확인
Map명.size(); : 맵에 저장된 키의 수를 리턴(크기)
Map명.clear(); : 모든 Map.Entry를 삭제함
Map명.remove(k); : 해당하는 키와 일치하는 Map.Entry 삭제.
4)맵의 값을 순차적으로 불러오는 법
ㄱ) .setKey() 메소드를 통해 키값을 불러와서 .get(키) 메소드로불러오는 방법
받아줄 Set객체 선언후 맵이름.setKey()로 초기화 한다. 그 후 Iterator를 사용하여 목록화 한 후 하나씩 맵이름.get(키) 메소드로 호출한다.
ㄴ).values() 메소드를 통해 출력하는 방법
Collection 객체 선언후 맵이름.values()를 통해 값을 넣고 Iterator를 사용하여 목록화 한 후 출력
ㄷ).entrySet() 메소드를 사용하여 Map.Entry 객체로 받아서 키와 값 모두 출력
받을 Set 객체 선언후 맵이름.entrySet()을 사용해 값을 넣음. Iterrator 사용하여 목록화.
그 후 Map.entry 객체 선언하여 목록화 한것을 Map.entry로 형변환 함. 마지막으로 .getKey()/.getValue()메소드를 통해 키와 값을 분리해 출력
'JAVA > Collection' 카테고리의 다른 글
generics (0) | 2019.12.26 |
---|---|
JAVAProperties (0) | 2019.12.21 |
Set (0) | 2019.12.21 |
ArrayList (0) | 2019.12.21 |