본문 바로가기
JAVA/Collection

MapTest

by 미눅스[멘토] 2023. 6. 22.
728x90
package kr.or.ddit.basic;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class MapTest {

	public static void main(String[] args) {
		/*
		  Map ==> key값과 value값을 한 쌍으로 관리하는 객체
		  	- key값은 중복을 허용하지 않고 순서가 없다. (Set의 특징을 갖는다.)
		  	-value값은 중복을 허용한다.
		  
		 */
		HashMap<String, String> map = new HashMap<>();
		
		// 자료 추가 ==> put(key값, value값)
		map.put("name", "홍길동");
		map.put("addr", "대전");
		map.put("tell", "010-1234-5678");
		
		System.out.println("map =>" + map);
		
		//자료 수정 ==> 데이터를 추가할 때 'key값'이 같으면 나중에 추가한 값이 저장된다.
		map.put("addr", "서울");
		System.out.println("map =>" + map);
		
		//자료 읽기 ==> get(key값)
		//	==> 주어진 'key값'과 짝이되는 'value값'을 반환한다.
		//	==> 주어진 'key값'이 없으면 null이 반환된다.
		System.out.println("이름 : " + map.get("name"));
		System.out.println("별명 : " + map.get("alias"));
		
		// 자료 삭제 ==> remove(key값)
		//		==> 주어진 'key값'이 같은 자료를 찾아서 삭제한다.
		//		==> 반환값 : 삭제된 자료의 'value값'이 반환된다.
		
//		String removeTel = map.remove("tell");
//		System.out.println("삭제 후 map =>" + map);
//		System.out.println("삭제된 value 값 =>" + removeTel);
		
		//key값이 존재하는지 여부를 나타내는 메소드 : containskey(key값)
		// =>해당 'key값'이 있으면 ture, 없으면 false 반환
		System.out.println("tel 키값의 존재 여부 : " + map.containsKey("tell"));
		System.out.println("alias 키값의 존재 여부 : " + map.containsKey("alias"));
		System.out.println("-----------------------------------------------");
		//-----------------------------------------------------------
		
		// Map에 저장된 모든 데이터를 읽어와서 사용하는 방법
		
		//방법1 : Map의 모든 key값을 읽어와서 사용하는 방법 ==> keySet()메서드 이용하기
		
		//keySet()메서드 ==> Map의 모든 key값들을 Set형으로 반환한다.
		
		Set<String> keySet = map.keySet();
		
		// 방법1-1 : Itorator이용하기.
		Iterator<String> it = keySet.iterator();
		while (it.hasNext()) {
			String key = it.next();	// key값 구하기.
			String value = map.get(key);
			System.out.println(key + " : " + value );
		}
		System.out.println("-----------------------------------------------");
		
		//방법1-2 : 향상된 for문 사용하기
		for (String key : keySet) {
			String value2 = map.get(key);
			System.out.println(key + " : " + value2);
		}
		System.out.println("-----------------------------------------------");
		
		//방법2 : value값만 읽어와서 처리하기
		//	=> values()메서드를 이용한다.
		for (String value3 : keySet) {
			System.out.println(value3);
		}
		System.out.println("-------------------------------------------------");
		
		//key값은 번호(int)로 하고 value값은 Member의 인스턴스로 하는 Map객체 생성하기
		HashMap<Integer, Member> memberMap = new HashMap<>();
		
		memberMap.put(1, new Member(1, "홍길동", "010-1111-1111"));
		
		Member mem = new Member(2, "이순신", "010-2222-2222");
		
		memberMap.put(2, mem);
		
		System.out.println("map의 개수 : " + memberMap.size());
		System.out.println("memberMap =>" + memberMap.toString());
		
		
		
	}

}

'JAVA > Collection' 카테고리의 다른 글

StackTest  (0) 2023.06.22
StackQueueTest  (2) 2023.06.22
SetTest  (0) 2023.06.22
ListSortTest02  (0) 2023.06.22
ListSortTest01  (0) 2023.06.22