Collection 클래스들 - Map
2023. 7. 18. 16:34ㆍJAVA
Map계열 : 키-벨류 쌍(Key-Value pair)으로 데이터를 저장하는 방식
Map 도 interface에서 직접 객체 생성 불가능
Map인터페이스를 구현한 하위 클래스들을 사용
1. HashMap : 저장순서 X, 인덱스 X, 대신 key(식별자)사용, 중복key X, 중복Data 허용
2. TreeMap : key(식별자)의 오름차순으로 정렬
3. LinkedHashMap : 저장순서대로 ...정렬
4. HashTable : HashMap와 99% 같음(멀티스레드에서 동기화 처리가 되어 있음)
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class MapTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Map계열 : 키-벨류 쌍(Key-Value pair)으로 데이터를 저장하는 방식
// Map 도 interface에서 직접 객체 생성 불가능
//Map인터페이스를 구현한 하위 클래스들을 사용
//1. HashMap : 저장순서 X, 인덱스 X, 대신 key(식별자)사용, 중복key X, 중복Data 허용
//2. TreeMap : key(식별자)의 오름차순으로 정렬
//3. LinkedHashMap : 저장순서대로 ...정렬
//4. HashTable : HashMap와 99% 같음(멀티스레드에서 동기화 처리가 되어 있음)
//<키 타입, 벨류 타입>
//HashMap<String, String> map = new HashMap<String, String>();
//TreeMap<String, String> map = new TreeMap<String, String>();
LinkedHashMap<String, String> map =new LinkedHashMap<String, String>();
//요소 추가
map.put("Name", "Hong");
map.put("ID", "abcd");
map.put("PW", "1234");
map.put("kkk", "Hong"); //중복 Data는 허용
map.put("kkk", "Park"); //중복 key는 허용X --> 저장이 안되는 것이 아니라 그 값이 변경되는 것임.
System.out.println(map.size());
//요소 얻어오기
String s= map.get("Name");
System.out.println(s);
System.out.println(map.get("ID"));
System.out.println(map.get("PW"));
System.out.println(map.get("kkk"));
System.out.println(map.toString());
//요소값을 순차적으로 얻어오기
//방법 for, for each문도 불가능
//방버1. 먼저 key값들만 먼저 뽑아와서 작업
Set<String> keys= map.keySet();
//1.1 keys를 for each롤
for(String key : keys) {
String e= map.get(key);
System.out.println(e);
}
System.out.println();
//1.2 keys를
Iterator<String> datas = keys.iterator();
while (datas.hasNext()) {
String key= datas.next();
System.out.println(key + " : " + map.get(keys));
}
System.out.println();
//방법2. Map의 요소들을 Set으로 변경하여 가져오기
//Map 의 요소(키-벨류 쌍) 객체인 Entry의 Set 얻어오기
Set<Entry<String, String>> entries=map.entrySet();
for( Entry<String, String> e : entries )
System.out.println(e.getKey() + " : " + e.getValue());
}
}'JAVA' 카테고리의 다른 글
| Runnable (0) | 2023.07.19 |
|---|---|
| Thread(스레드) (0) | 2023.07.19 |
| Collection 클래스들 - Set (0) | 2023.07.18 |
| Colletion 클래스들 - List (0) | 2023.07.18 |
| Java 고급 문법 - Collection 클래스들 (0) | 2023.07.18 |