- Map 컬렉션
- Map컬렉션은 Key 와 Value 로 구성된 Entry 객체를 저장하는 구조를 가지고 있다
- Key 와 Value 는 모두 객체이다
- Key 는 중복 저장이 불가능 하지만
- Value 는 중복 저장 될수 있다
- 만약 기존에 저장된 키와 동일한 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체된다.
- 기본적인 선언과 값 입력 방식
- Map< k , v > name = new HashMap <k , v >();
- name.put( k , v)
- 출력 : name.get( k ) = v
- .keySet() - 모든 키를 Set객체에 담아서 return
1
2
3
4
5
6
7
8
9
|
//선언부
Map<String, String> exp1 = new HashMap<String,String>();
//값을 입력 (Key , value )
exp1.put("name", "수영");
exp1.put("role", "키");
System.out.println(exp1.get("name")+":"+exp1.get("role"));
//출력 결과
수영:키
| cs |
- while 문을 통한 전체 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//KeySet 얻기
Set<String> keySet= exp1.keySet();
System.out.println(keySet);
[role, name] //출력 결과
Iterator<String> keyIterator = keySet.iterator();
while(keyIterator.hasNext()){
String key = keyIterator.next();
String val = exp1.get(key);
System.out.println(key + " - "+val);
}
| cs |
- Set 컬렉션
- 수학의 집합과 유사 - 순서가 뒤죽박죽이며 중복이 허용되지 않음
- Iteratro <E> iterator - 저장된 객체를 한번씩 가져오는 반복자
- Iterator 인터페이스 ( 어떤 데이터 전체를 루핑할때 사용됨,for문과 유사)
- Method 들...
- boolean hasNext() - 가져올 객체가 있으면 true;없으면 false; return;
- E(객체) next() - 컬렉션에서 하나의 객체를 가지고 온다
- void remove() - set 컬렉션에서 객체를 하나 가져옴
- ArrayList 형태로 처리하기
- Map 객체 하나에 값을 계속 바꿔서 넣어준다고해도
- 같은 값으로 인식!! (주의!)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//선언부
ArrayList<Map<String, String>> expList =
new ArrayList<Map<String, String>>();
//이런식으로 새로운 객체를 만들지 않을경우 계속 중복된 값으로 인식해서
//하나의 객체값만 들어가게됨
Map<String, String> exp1 = new HashMap<String,String>();
Map<String, String> exp2 = new HashMap<String,String>();
Map<String, String> exp3 = new HashMap<String,String>();
//값을 입력 (Key , value )
exp1.put("name", "수영");
exp1.put("role", "키");
expList.add(exp1);
exp2.put("name", "효연");
exp2.put("role", "댄스");
expList.add(exp2);
exp3.put("name", "윤아");
exp3.put("role", "센터");
expList.add(exp3);
| cs |
- 출력부
1
2
3
4
5
6
7
8
9
10
11
12
13
|
for(Map<String,String> map :expList){
Set<String> keySet02=map.keySet();
Iterator<String> keyIterator02 = keySet02.iterator();
while(keyIterator02.hasNext()){
String key02 = keyIterator02.next();
String val02 = map.get(key02);
System.out.println(key02 + " + "+ val02);
}
}
| cs |
- 결과
1
2
3
4
5
6
|
role + 키
name + 수영
role + 댄스
name + 효연
role + 센터
name + 윤아
| cs |
댓글 없음:
댓글 쓰기