Java Key, Value - HashMap, Hashtable






결과

결과







코드

package pk;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Test {

	public static void main(String[] args) {
		Map<Integer, String> m = new HashMap<>();
		
		m.put(5, "E");	
		m.put(3, "C");	
		m.put(1, "A");	
		m.put(2, "B");	
		m.put(1, "X");	// 동일한 키 존재 시 해당 값 변경
		
		System.out.println("Key 4 존재 ? " + m.containsKey(4) );
		System.out.println("Value C 존재 ? " + m.containsValue("C") );
		System.out.println();
		
		System.out.println("Key 3의 Value : " + m.get(3));
		System.out.println("Key 4의 Value : " + m.get(4));	// 해당 키가 없다면 null 리턴
		System.out.println("길이 : " + m.size());
		
		m.remove(3);	// 삭제
		
		System.out.println();
		// Key
		Iterator<Integer> it = m.keySet().iterator();	// 모든 키를 Set의 넣어 리턴 + iterator
		while(it.hasNext()) {
			System.out.print(it.next() + " ");
		}
		
		System.out.println();
		// Value
		Iterator<String> it2 = m.values().iterator();	// 모든 값을 Collection에 넣어 리턴 + iterator
		while(it2.hasNext()) {
			System.out.print(it2.next() + " ");
		}
	}

}




HashMap : <Key, Value> 쌍의 값을 저장하는 구조이다.

값은 중복될 수도 있지만, 키는 중복 저장이 불가능하다.

만약 기존의 존재하는 키로 추가하였을 때는 해당 키의 값이 변경된다.



HashTable : HashMap과 동일한 구조, 사용방법을 갖는다.

단, HashTable은 스레드의 안전(Thread Safe) 하다.








put(K k, V v) : 추가

- 기존의 존재하는 키를 추가하였을 시 값이 변경된다.





V remove(K k) : 삭제

- 인수로 준 키의 해당하는 쌍을 삭제한다.


- 존재하지 않을 경우 null을 리턴한다.





boolean containsKey(K k) : 키 존재 여부

- 해당 키가 존재하는지 확인한다.





boolean containsValue(V v) : 값 존재 여부

- 해당 값이 존재하는지 확인한다.





V get(K k) : 값 얻기

- 인수로 준 키의 해당하는 값을 리턴한다.


- 존재하지 않는 키일 경우 null을 리턴한다.




int size() : 길이(개수) 리턴




Set<K k> keySet() : 키 Set 리턴





Collection<V v> values() : 값 Collection 리턴










+ Recent posts