관리 메뉴

개발하는 동그리

[Java] Collection Framwork (Map편) 본문

IT 정보/Java

[Java] Collection Framwork (Map편)

개발하는 동그리 2022. 5. 18. 10:59
반응형
기능 리턴 타입 메서드 설명
객체 추가 Object put(Object key, Object value) 주어진 키로 값을 저장, 새로운 키일 경우 null을 리턴하고 동일한 키가 있을 경우 값을 대체하고 이전값을 리턴
객체 검색 boolean containsKey(Object key) 주어진 키가 있으면 true, 없으면 false를 리턴
  boolean containsValue(Object value) 주어진 값이 있으면 true, 없으면 false를 리턴
  Set entrySet() 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴
  Object get(Object key) 주어진 키에 해당하는 값을 리턴
  boolean isEmpty() 컬렉션이 비어 있는지 확인
  Set keySet() 모든 키를 Set 객체에 담아서 리턴
  int size() 저장된 키-값 쌍의 총 갯수를 리턴
  Collection values() 저장된 모든 값을 Collection에 담아서 리턴
객체 삭제 void clear() 모든 Map.Entry(키와 값)을 삭제
  Object remove(Object key) 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 리턴

HashMap은 해시 함수를 통해 'key', 'value'가 저장되는 위치를 결정한다. 

hashMap 선언 방법 

Map<Key, Value> map = new HashMap<Key,Value>();
Map<Key, Value> map = new HashMap<Key, Value>(capacity, loadFactor);

// capacity : 해시테이블의 버킷 수
// loadFactor : 해시테이블의 버킷이 얼마나 가득 찼는지 보여주는 수치

 

예시

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();

        //객체 저장
        map.put("고구마", 50);
        map.put("감자", 40);
       
        //저장된 총 Entry 수 얻기
        System.out.println("총 entry 수: " + map.size());

        //객체 찾기 -> 이름(key)으로 점수(value) get!
        System.out.println("고구마 : " + map.get("고구마"));

        //객체를 하나씩 처리
        //Set 컬렉션으로 이름(key) 얻기
        Set<String> keySet = map.keySet(); 

        //반복해서 이름(key)를 얻고, 값을 Map에서 얻어냄
        Iterator<String> keyIterator = keySet.iterator();
        while(keyIterator.hasNext()) {
            String key = keyIterator.next();
            Integer value = map.get(key);
            System.out.println(key + " : " + value);
        }

        //객체 삭제
        map.remove("감자");
        // map.size() 1 감소!
        map.size()
        
        //객체를 하나씩 처리
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        
        //Set 컬렉션으로 Map.Entry 얻기
        Iterator<Map.Entry<String, Integer>> entryIterator = entrySet.iterator();

        //반복해서 Map.Entry를 얻고 키와 값을 get!!
        while(entryIterator.hasNext()) {
            Map.Entry<String, Integer> entry = entryIterator.next();
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key + " : " + value);
        }

        //객체 전체 삭제
        map.clear();
    }
}
반응형

'IT 정보 > Java' 카테고리의 다른 글

[Java] 애너테이션 ( Annotation )  (7) 2022.05.19
[Java] 람다 (Lambda)  (8) 2022.05.19
[Java] Collection Framwork (List편)  (8) 2022.05.18
[Java] 내부 클래스(Inner class)  (10) 2022.05.18
[Java] Iterator 인터페이스  (40) 2022.05.16