컴퓨터 관련/JAVA 강의

java #26 Map

승명 2016. 12. 18. 19:59

java #26 Map

 

* Map

- Map<Key, Value> 





- HashMap(16개의 행씩 증가), HashTable(10개의 행씩 증가)
- HashMap : 생성시 크기를 설정하지 않으면 16개의 행이 자동 생성된다. 
- HashTable 생성시 크기를 설정하지 않으면 10개의 행이 자동 생성된다.
- 전체레코드에서 약 75%의 레코드가 존재할때 빠른 검색을 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 생성
Map<String,String> map=new HashMap<String,String>();
 
- 값 추가 : 키가 같다면 같은 키에 덮어쓴다.(이전 값이 사라진다.)
map.put(String,String);
 
- 행의 크기 
map.size();
 
- 값 얻기 : generic에 쓰여져있는 형식의 값이 리턴됨. 키가 없을때에는 객체 초기화값인 null 리턴됨
map.get(키); 
 
- 값 삭제 
map.remove(키);
 
- 모두 삭제 
map.clear();
cs

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package day0303;
 
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
 
/**
* 키와 값의 쌍으로 구성된 자료형 map 사용 키는 중복되지 않으나 값은 중복된다. 
*
* @author SiSt
*/
public class UseMap {
 
     public void useHashtable() {
          // 생성
          Hashtable<StringString> map = new Hashtable<StringString>();
          // 2. 값추가
          map.put("A""세심하다. 친절하다.^0^b");
          map.put("B""성질드럽다.ㅡ,.ㅡ");
          map.put("AB""싸이코 @,.@");
          map.put("O""우유부단하다.");
          // 데이터는 순서대로 들어가지 않는다.
          System.out.println("크기 " + map.size() + " / " + map);
          map.put("A""소심하다.(^0^)ㅗ");
          System.out.println("크기 " + map.size() + " / " + map);
          String bloodType = "a";
          String value = map.get(bloodType.toUpperCase());// 소문자를 대문자로 바꿔서 조회함.
          if (value != null) {
               System.out.println(bloodType + "형의 특징은 " + value);
          } else {
               System.out.println(bloodType + "형은 사람의 것이 아닙니다.");
 
          }// end else
               // 삭제
          map.remove("B");
          System.out.println(map);
 
     }
 
     public void useHashMap() {
          Map<StringString> map = new HashMap<StringString>();
          map.put("장유유서""노인공경");
          map.put("고진감래""고생끝에 낙이온다.");
          map.put("필사즉생""죽으려 하면 살것이다.");
          map.put("낙장불입""한번 낸 패는 되돌릴 수 없다.");
          map.put("일석이조""죽으려 하면 살것이다.");
          map.put("개과천선""더 좋은모습으로 찾아뵙겠습니다.");
          map.put("토사구팽""토끼사냥이 끝나면 사냥개가 필요없다.");
 
          System.out.println("추가 후 크기 " + map.size() + " / " + map);
String key = "필사생";
String value=map.get(key);
if (value !=null){
     System.out.println(key+"의 뜻은 "+value);
}else{
     System.out.println(key+"의 뜻은 준비되지 않았습니다.");
}
     }
 
     public static void main(String[] args) {
          UseMap um = new UseMap();
          um.useHashtable();
          System.out.println("----------------");
          um.useHashMap();
 
     }
 
}