foxpacking

Programming Lessons

Java 언어 Korean

Java 총 정리[83. Map]

Map

이전 걸음까지 중요한 자료구조인 List와 Set에 대해서 공부를 하였습니다. 이번 걸음에서는 Java의 자료구조의 마지막을 다뤄보려고 합니다. 이전 자료구조를 잘 이해를 하셨다면 어렵지 않게 이번 자료구조도 이해를 하실 수 있습니다.

Map에 대해서 이번 걸음에서 공부를 해보도록 하겠습니다. Map에 대한 전반적인 내용과 함께 예제를 적용하여 사용을 하는 방법까지 이야기를 할 예정입니다. 이번 걸음을 끝까지 보신다면 Map에 대한 이해가 많아 지실 수 있습니다.

Map이란 무엇 인지와 Map에 사용을 하는 Method 그리고 마지막으로는 Map의 예제를 통해 Map을 사용을 할 수 있는 방법을 같이 공부를 하도록 하겠습니다. 끝까지 이 글을 읽어 주세요!

Map 이란?

Map메인사진

Map의 자료구조는 Key와 Value로 구성이 됩니다. 말 그대로 Key은 Value를 찾기 위한 열쇠이고 그 열쇠를 이용해서 접근을 하면 값을 사용을 할 수 있습니다. Key는 중복이 허용이 안됩니다. 같은 열쇠가 있으면 어느 것을 여는지 알 수가 없기 때문입니다. 하지만 Value은 중복이 허용됩니다. Key로 Value를 얻기 때문에 중복이 크게 상관이 없어지기 때문입니다.

※ 관련 인터페이서 : Map / 관련 클래스 : hashMap, treeMap

Map 관련 Method

추가 -> put(key, value)

값 추출 -> get(key)

키를 모두 추출 keyset() -> Set 변수로 받아야 합니다.

Set 검색 방식으로 반복하면서

Get(key)호출해서 값을 출력

remove(key) -> 삭제

Map 예제 소스

    
class C{
	int k;
}
class D{
	String str;
}
public class MapTest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashMap<C, D> map = new HashMap();
		C c = new C();
		C c1 = new C();
		map.put(c, new D());
		map.get(c1); // null
		map.get(c);//객체 D를 리턴
	}
}
    

위 소스와 같이 Key를 C객체로 하고 D를 값 객체로 활용해서 Map을 사용을 하고 있습니다. Key와 Value은 참조 자료형이면 뭐든 가능합니다.

    
    		HashMap a = new HashMap<Integer, String>();
		
		a.put(0, "가위"); // map에 추가
		a.put(1, "바위");
		a.put(2, "보");
				
		/*안됩니다. 아래와 같이하려면 List
		for(int i =0;i<a.size();i++) {
			a.get(i)
		}*/	
		Set<Integer> key=a.keySet(); //1. 키꾸러미 뺀다 -> Set
		
		Iterator<Integer> i = key.iterator(); //2. iterator 변경
		while(i.hasNext()) { // 3. hasNext 그 다음 값이 있는 확인 한다.
			Integer temp = i.next(); // 4. 그 다음 값을 추출한다. 
			System.out.println(a.get(temp));
		// 5. 추출된 key 값을 이용해 map-> get 함수 매개변수에 넣어준다.
		}
    

위 예제 소스를 보면 데이터 추가와 while문으로 key을 모르면 검색을 할 수 있는 방법에 대한 예제 입니다. key를 알면 바로 접근해서 그 안에 Value를 가질 수 있지만 Key를 모르는 경우에는 keyset()를 활용을 하면 전체 데이터를 확인을 해볼 수 있습니다.

Dolphin

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나