일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 데이터규정
- JSTL
- java annotation
- JavaScript
- xml mapping
- Request/Response Header
- Servlet
- 자바
- 데이터포맷
- 자바스크립트
- Database
- XML Core
- Session
- JSP
- java컴파일
- xml
- 반응형웹
- 데이터베이스
- 데이터문서포맷
- Java
- 공문서작성규정
- 카카오APi
- Ajax
- HTTP
- Multipart
- XML DOM
- 프로그래밍용어
- 웹프로그래밍
- 세션
- 스프링프레임워크
- Today
- Total
KyungHwan's etc.
자바 Map 컬렉션 클래스 본문
Map 인터페이스는 Collection 인터페이스와는 다른 저장 방식을 가진다.
Map 인터페이스를 구현한 Map 컬렉션 클래스들은 키와 값을 하나의 쌍으로 저장하는 방식(key-value 방식)을 사용한다.
여기서 키(key)란 실질적인 값(value)을 찾기 위한 이름의 역할을 한다.
Map 인터페이스를 구현한 모든 Map 컬렉션 클래스는 다음과 같은 특징을 가진다.
요소의 저장 순서를 유지하지 않는다.
키는 중복을 허용하지 않지만, 값의 중복은 허용한다.
대표적인 Map 컬렉션 클래스에 속하는 클래스는 다음과 같다.
HashMap<K, V>
Hashtable<K, V>
TreeMap<K, V>
HashMap<K, V> 클래스
HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나이ㅏ.
JDK 1.2부터 제공된 HashMap 클래스는 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠르다.
HashMap 클래스는 Map 인터페이스를 구현하므로, 중복된 키로는 값을 저장할 수 없다. 하지만 같은 값을 다른 키로 저장하는 것은 가능하다.
기본적으로 Map을 선언하고 HashMap을 불러온다.
Map map = new HashMap();
또는
HashMap map = new HashMap();
그리고 HashMap을 사용할때 뒤에 key-value의 변수명을 명확하게 해주는 것을 권장한다.
아래와 같이 정해줄 경우, 데이터의 형식이 일정하다보니 좀더 빠르게 찾을 수 있고, 보기에도 명확하다.
데이터를 저장 할때는 간단하게 put으로 저장 가능하다.
key는 String, value는 Int형으로 저장
map.put("국어",90);
map.put("수학":100);
불러오는 것은 get으로 가져올 수 있다.
인자로 key를 넣어주면 된다.
System.out.println("국어점수 : "+map.get("국어"));
국어점수 : 90
TreeMap<Integer, String> tm = new TreeMap<Integer, String>();
// put() 메소드를 이용한 요소의 저장
tm.put(30, "삼십");
tm.put(10, "십");
tm.put(40, "사십");
tm.put(20, "이십");
// Enhanced for 문과 get() 메소드를 이용한 요소의 출력
System.out.println("맵에 저장된 키들의 집합 : " + tm.keySet());
for (Integer key : tm.keySet()) {
System.out.println(String.format("키 : %s, 값 : %s", key, tm.get(key)));
}
// remove() 메소드를 이용한 요소의 제거
tm.remove(40);
// iterator() 메소드와 get() 메소드를 이용한 요소의 출력
Iterator<Integer> keys = tm.keySet().iterator();
while (keys.hasNext()) {
Integer key = keys.next();
System.out.println(String.format("키 : %s, 값 : %s", key, tm.get(key)));
}
// replace() 메소드를 이용한 요소의 수정
tm.replace(20, "twenty");
for (Integer key : tm.keySet()) {
System.out.println(String.format("키 : %s, 값 : %s", key, tm.get(key)));
}
// size() 메소드를 이용한 요소의 총 개수
System.out.println("맵의 크기 : " + tm.size());
맵에 저장된 키들의 집합 : [10, 20, 30, 40]
키 : 10, 값 : 십
키 : 20, 값 : 이십
키 : 30, 값 : 삼십
키 : 40, 값 : 사십
키 : 10, 값 : 십
키 : 20, 값 : 이십
키 : 30, 값 : 삼십
키 : 10, 값 : 십
키 : 20, 값 : twenty
키 : 30, 값 : 삼십
맵의 크기 : 3
HashMap<K, V> 메소드
HashMap<K, V> 클래스에서 제공하는 주요 메소드는 다음과 같다.
설명 | |
---|---|
HashMap() | - HashMap 객체를 생성 ex) HashMap<String , Integer> map = new HashMap<String , >(); Map<String, Integer> map = new HashMap<String, integer>(); |
HashMap(int initlalCapacity) | - 지정된 값을 초기 용량으로 하는 HashMap객체를 생성한다. |
HashMap(int initlalCapacity, float loadFactory) | - 지정된 값을 초기용량과 load factory의 HashMap 객체를 생성한다. |
HashMap(Map m) | - 주어진 Map에 저장된 모든 요소를 포함하는 HashMap을 생성한다. |
void clear() | - HashMap에 저장된 모든 객체를 제거한다. ex) map.clear(); |
Object clone() | - 현재 HashMap을 복제하여 반환한다. ex) newmap = (HashMap)map.clone(); |
boolean containsKey(Object Key) | - HashMap에 지정된 키(Key)가 포함되어 있는지 알려준다. |
boolean containsValue(Object Value) | - HashMap에 지정된 값(Value)가 포함되어 있는지 알려준다. |
Set entrySet() | - HashMap에 저장된 Key - Value갑슬 엔트리(키와 값을 결합)의 형태로 Set에 저장하여 반환 ex) map.put("A", 1); map.put("B", 2); map.put("C", 3); Set set = map.entrySet(); System.out.println("set values are" + set); (result) set values : [A=1,B=2,C=3] |
Object get(Object Key) | - 지정된 Key 의 값을 반환한다. ex) map.put("A", 1); map.put("B", 2); map.put("C", 3); String val = (String)map.get("B"); System.out.println("Value for key B is: " + val); (result) Value for key B is 2 |
bloolean isEmpty | - HashMap이 비어있는지 확인한다 . ex) boolean val = map.isEmpty(); |
Set keySet() | - HashMap에 저장된 모든 키가 저장된 Set을 반환한다. ex) map.put("A", 1); map.put("B", 2); map.put("C", 3); Set keyset = map.keySet(); System.out.println("Key set values are" + keyset) (result) Key set values are [A,B,C] |
Object put(Object Key, Object Value) | - HashMap에 키와 값을 저장. ex) map.put("A", "aaa"); map.put("B", "bbb"); map.put("C", "ccc"); |
void putAll(Map m) | - Map에 해당하는 모든 요소를 HashMap에 저장한다. |
Object remove(Object Key) | - HashMap에서 지정된 키로 지정된 값을 제거한다. ex) map.remove("key"); |
int size() | - HashMap에 저장된 요소의 개수를 반환한다. |
Collection values() | - HashMap에 저장된 모든 값을 컬렉션 형태로 반환한다. |
'Java' 카테고리의 다른 글
자바(JAVA) Sokect 통신 (0) | 2018.06.22 |
---|---|
자바(JAVA) 파일 입출력(I/O) (0) | 2018.06.22 |
자바 List 컬렉션 클래스 (ArrayList) (0) | 2018.06.20 |
자바 컬렉션 프레임워크(Collection framework) (0) | 2018.06.20 |
자바 제네릭(generic) (0) | 2018.06.20 |