[Java] HashMap 사용하기

go_go_·2022년 7월 4일
0

Java

목록 보기
3/4
post-custom-banner

✔목차

  • 선언
  • 삽입
  • 삭제
  • 접근
  • 기타

선언

new HashMap

  • new HashMap<[type, type]>()
	HashMap<> map = new HashMap<>(); //type없음, Object 입력
	HashMap<Integer, Integer> map1 = new 	HashMap<>(); //type 설정
	HashMap<Integer, Integer> map2 = new 	HashMap<>(map2); //map2 카피 
	HashMap<Integer, Integer> map3 = new HashMap<>(10); //초기용량 설정
		

삽입

  • put
  • putIfAbsent
  • put(K key, V value)

    • 중복 key가 입력되었을 때 업데이트
  • putIfAbsent(K key, V value)

    • key가 입력되었을 때 업데이트 하지 않음
	map.put(0, "vlaue1"); //mep.get(0) => value1
	map.put(0, "value2"); //mep.get(0) => value2
	map.putIfAbsent(0, "value3"); //mep.get(0) => value2		

삭제

  • remove
  • clear
  • remove(K key)
    • key 값에 해당하는 value 삭제
	map.remove(1);
  • clear()
    • 모든 value 삭제
	map.clear();

접근

  • get
  • KeySet
  • values
  • entrySet
  • Iterator
  • get(Object key)
    - 반환형: V, value 형식
	String value = map.get(1);
  • KeySet()
    - 반환형: Set<k>

  • values()
    - 반환형: Collection<v>

	System.out.println("map.keySet() = " + map.keySet());
	System.out.println("map.values() =" + map.values());
    
	출력
	map.keySet() = [1, 2, 3]
	map.values() =[a, b, c] 

  • enterySet()
    - 반환형: Set<Entry<k, v>>
    • HashMap에 저장된 모든 Entry 객체반환
    • getKey()와 getValue()로 접근 가능하다.
	for (Entry<Integer, String> entry : map.entrySet()) {
		System.out.print("key: " + entry.getKey());			
        System.out.println(", value: " + entry.getValue());
        }
	출력
	key: 1, value: a
	key: 2, value: b
	key: 3, value: c
		

  • Iterator
	Iterator iter = map.entrySet().iterator();
	while(iter.hasNext()) {
		Map.Entry entry = (Map.Entry)iter.next();
		System.out.println("key: "+ entry.getKey()+
        				   ", value: "+entry.getValue());
	}
	출력
	key: 1, value: a
	key: 2, value: b
	key: 3, value: c

기타

  • replace
  • size
  • contains
  • getOrDefault
  • putIfAbsent
  • replace(K key, V new_value)

    • 새 value 값으로 업데이트 한다.
    • HashMap에 key 값이 없다면 null반환한다.
  • size()
    - 반환형: int

  • containsKey(Object key)
    conatinValue(Object value)
    - 반환형: boolean
    • HashMap에 입력한 key나 value가 있으면 true, 없으면 false를 반환한다.
	System.out.println(map.containsKey(1)); //true
	System.out.println(map.containsValue("d")); //false

  • map.getOrDefault(Object key, V defaultValue)
    • HashMap에 없는 key로 map.get(K key) 호출 시 null이 반환된다.
    • getOrDefault는 key에 해당하는 value 있으면 반환, 없으면 defaultValue 반환한다.
	System.out.println("get 메서드: " + map.get(4));
	System.out.println("getOrDefault 메서드: " + map.getOrDefault(4, "d"));
	출력
	get 메서드: null
	getOrDefault 메서드: d

profile
개발도 하고 싶은 클라우드 엔지니어
post-custom-banner

0개의 댓글