11_Collection(2)

김정욱·2022년 12월 29일
0

JAVA 복습

목록 보기
13/15
post-thumbnail
post-custom-banner

6) Set

  • 저장 순서가 유지되지 않고, 중복 객체도 저장하지 못하게 하는 자료 구조
  • null도 중복을 허용하지 않고, 1개만 저장
  • 구현 클래스 : HashSet, LinkedSet, TreeSet

  • Set 계열 주요 메소드

    < HashSet >
    Set에 객체를 저장할 때 hash함수를 사용하여 처리 속도가 빠름.
    동일 객체 뿐 아니라 동등 객체도 중복하여 저장하지 않음

    < LinkedHashSet >
    HashSet과 거의 동일하지만 Set에 추가되는 순서를 유지

    < TreeSet >
    순서를 유지하지는 않지만 오름차순으로 자동 정렬한다

    (1)Set<Integer> lotto = new HashSet<Integer>();
    (2)Set<Integer> lotto = new LinkedHashSet<Integer>();
    (3)Set<Integer> lotto = new TreeSet<Integer>();
     
    while(lotto.size() < 6) {
    
    	int randome = (int)( Math.random() * 45 + 1 );
    
      System.out.print(random + ", ");
    
      lotto.add(random);
    }
    
    System.out.println(lotto);
    \-----------------------------------------------
    출력 값
    random : 21, 15, 4, 15, 14, 25, 37
    (1) [4, 21, 37, 25, 14, 15]
    (2) [21, 15, 4, 14, 25, 37]
    (3) [4, 14, 15, 21, 25, 37]

7) Map

  • 키(Key)와 값(Value)으로 구성되어 있으며, 키와 값은 모두 객체

  • 키는 중복 저장을 허용하지 않고(Set방식), 값은 중복 저장 가능(List방식)

  • 키가 중복되는 경우, 기존 키의 값에 해당하는 값을 덮어 씌움

  • 구현 클래스 : HashMap, HashTable, LinkedHashMap, TreeMap

  • Map 계열 주요 메소드

  • Map에 담겨있는 요소들에 순차적으로 접근하기 위한 2가지 방법

    1. keySet() 이용하기 : keySet() 으로 Map의 Key를 Set에 담은 후 Set에 있는 Iterator를 통해 접근
      for(String key : map.keySet()) {
      	Object value = map.get(key);
      	System.out.println(key + " : " + value);
      }
    2. entrySet() 이용하기 : entrySet()으로 Map의 key와 value를 Set에 담은 후 Set에 있는 Iterator를 통해 접근
      for(Map.Entry<String, Integer> temp : empMap.entrySet()) {
      	System.out.println(temp);			
      }
  
#### 8) 정리
  
>< List Interface >
> 
- ArrayList : 상대적으로 빠르고 요소에 대해 순차적으로 접근할 수 있다.
  >
- Vector : ArrayList의 이전 버전이며 모든 메서드가 동기화 되어 있다.
  >
- LinkedList : 순서가 변경되는 경우 노드 링크만 변경하면 되므로 삽입, 삭제가 빈번 할 때 빠르다.
  
>< Set Interface >
>
- HashSet : 빠른 접근 속도를 가지고 있으나 순서를 예측할 수 없다.
  >
- LinkedHashSet : 요소가 추가된 순서대로 접근할 수 있다.
  >
- TreeSet : 요소들의 정렬 방법을 직접 지정할 수 있다.
  
  
>< Map Interface >
>
- HashMap : 중복을 허용하지 않고 순서를 보장하지 않으며 null 값을 허용한다.
 > 
- Hashtable : HashMap 보다는 느리지만 동기화를 지원하며 null 값을 허용하지 않는다.
  >
- TreeMap : 정렬된 순서대로 Key와 Value를 저장하므로 빠른 검색이 가능하지만 요소를 추가할 때 정렬로 인해 오래걸린다.
  >
- LinkedHashMap : HashMap과 기본적으로 동일하지만 입력한 순서대로 접근이 가능하다.
profile
절박한 마음을 갖고 하루를 보내자!!
post-custom-banner

0개의 댓글