21.01.18-39일차

되자개발자·2021년 6월 7일
0

기록하기

목록 보기
38/46
post-thumbnail

👵 컬렉션프레임웍


👶 HashSet - 순서X, 중복X


👉 HashSet

  • Set인터페이스를 구현한 대표적인 컬렉션 클래스
  • 순서를 유지하려면, LinkedHashSet클래스를 사용
    👉 TreeSet
  • 범위 검색과 정렬에 유리한 컬렉션 클래스 (from ~ to)
  • HashSet보다 데이터 추가, 삭제 시간이 더 걸림

👶 HashSet - 주요 메서드

HashSet()
HashSet(Collection c) - 생성자 가짐
HashSet(int initialCapacity) - 초기용량(보통 2배로 늘림)
HashSet(int initialCapacity, float loadFactor) - float loadFactor는 언제 2배로 늘릴것인지
boolean add(Object o) - 추가
boolean addAll(Collection c) - 합집합
boolean remove(Object o) - 삭제
boolean removeAll(Collection c) - 교집합
boolean retainAll(Collection c) - 조건부삭제(차집합)
void clear() - 모두삭제
boolean contains(Object o) - 포함되어있는지?
boolean containsAll(Collection c) - 여러객체 모두 포함?
lterator iterator()
boolean isEmpty() - 비었는지?
int size() - 저장된 객체수
Object[] toArray() - 객체배열로 반환
Object[] toArray(Object[] a) - 객체배열로 반환


👶 TreeSet - 범위 탐색, 정렬

  • 이진 탐색 트리(binary search tree)로 구현
  • 범위 탐색과 정렬에 유리
  • 이진 트리는 모든 노드가 최대 2개(0~2)의 하위 노드를 갖음
    각 요소(node)가 나무(tree)형태로 연결(LinkedList의 변형)

👶 이진 탐색 트리(binary search tree)

  • 부모보다 작은 값은 왼쪽, 큰 값은 오른쪽에 저장
  • 데이터가 많아질수록 추가, 삭제 시간이 더 걸림(비교횟수증가)

👶 TreeSet - 주요 생성자와 메서드


👶HashMap & Hashtable - 순서X, 중복(키X, 값O)

  • Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장
  • HashMap(동기화X)은 Hashtable(동기화O)의 신버전
  • 키는 id, 값은 pw라고 생각하기

👉 HashMap

  • Map인터페이스를 구현한 대표적인 컬렉션 클래스
  • 순서를 유지하려면, LinkedHashMap클래스를 사용하면 된다.

👉 TreeMap

  • 범위 검색과 정렬에 유리한 컬렉션 클래스
  • HashMap보다 데이터 추가, 삭제에 시간이 더 걸림(비교->저장때문)

👶HashMap의 키(key)와 값(value)

  • 해싱(hashing)기법으로 데이터를 저장.
    (데이터가 많아도 검색이 빠름)
  • Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장

🧒해싱(hashing)이란??

  • 해시함수(hash function)로 해시테이블(hash table)에 데이터를 저장 검색
  • 해시테이블은 배열과 링크드 리스트가 조합된 형태

👶 HashMap - 주요 메서드


👶 Collections

  • 컬렉션을 위한 메서드(static)를 제공
  • 컬렉션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySearch()
  • 컬렉션의 동기화 - synchronizedXXX()
  • 변경불가(readOnly) 컬렉션 만들기 - unmodifiableXXX()
  • 싱글톤 컬렉션 만들기 - singletonXXX()
    (객체 1개만 저장 가능)
  • 한 종류의 객체만 저장하는 컬렉션 만들기 - checkedXXX()

👶 컬렉션 클래스 정리




👶 출처

자바의 정석 책 & 유튜브

profile
열심히가 되는 길♨_♨

0개의 댓글