자료 구조

yeonju·2020년 4월 23일
0

22장. List

자료 구조

  • List (순서O)
  • Set (순서X, 중복X)
  • Queue (FIFO)
  • map (key, value)

public interface Collection extends Iterable

  • Iterator인터페이스를 사용하여 데이터를 순차적으로 가져올 수 있다.
  • 여러 개의 객체를 하나의 객체에 담아 처리할 때 공통적으로 사용되는 메소드들 선언
  • List, Set, Queue

List 인터페이스

  • ArrayList : Not thread safe
  • Vector : thread safe
  • Stack : LIFO
  • LinkedList : FIFO (List이자 Queue)

ArrayList가 구현한 인터페이스들

  • Serializable, Cloneable, Iterable, Collection, List, RandomAccess

ArrayList의 생성자

  • 보통 한가지 종류의 객체만 저장(타입지정)
  • 변수 넣지 않으면 초기 크기는 10

ArrayList데이터 담기

  • add(E e) : 가장 끝에 담음
  • add(int index, E e) : 지정 위치 뒤로 하나씩 밀림

ArrayList데이터 꺼내기``****

  • .size() 들어가 있는 데이터 개수
  • .length 배열의 저장 공간 개수
  • toArray() 배열로 꺼내기

Stack 클래스 : LIFO

  • empty()
  • peek() : 맨 위 리턴
  • pop() : 맨 위 지우고 리턴
  • push(E item) : 맨 위 저장
  • search(Object o) : 위치 리턴
  • ArrayDeque가 더 빠르지만 ArrayDeque는 Not thread safe.

23장. Set, Queue

Set : 값의 존재 유무를 확인하기 위함이 핵심. (순서X, 중복X)

  • HashSet : 로드 팩터
  • TreeSet :
  • LinkedHashSet

Queue : FIFO

  • LinkedList : 데이터가 나열되어 있는 상태에서 앞 뒤 값만 참조.
    따라서 배열의 중간에 있는 데이터가 지속적으로 삭제되고, 추가될 경우에는
    LinkedList가 배열보다 메모리 공간 측면에서 훨씬 유리하다.
    크기 지정 안함. 데이터들이 앞 뒤로 연결되는 구조이기 때문에, 미리 공간을 만들어 놓을 필요가 없는것. (List, Queue 둘다 구현)

24장. Map

Map 인터페이스를 구현한 클래스

  • HashMap
  • TreeMap
  • LinkedHashMap
  • Hashtable

Map 주요 메서드

  • keySet() : 키 목록을 Set으로 반환
  • value() : 값 목록을 Collection으로 반환
  • entrySet() : Map안에 Entry라는 타입의 Set반환
  • size() : map 크기 반환
  • clear() : 지움
  • containsKey() 매개 변수로 넘긴 키가 존재하는지
  • containsValue() 매개 변수로 넘긴 값이 존재하는지

일반적인 Map과 Hashtable 클래스의 차이점 (Map / Hashtable)

  • 컬렉션 뷰 사용 / Enumeration 객체를 통해 데이터 처리
  • 키, 값 쌍으로 데이터 순환 가능 / 불가능
  • 이터레이션 처리 도중 데이터 삭제 가능 / 불가능

HashMap과 Hashtable 차이점 (HashMap /Hashtable)

  • 키, 값에 null 저장 가능 / 불가능
  • thread not safe / safe

Map으로 끝나는 클래스들을 여러 쓰레드에서 동시에 접근하여 처리할 필요가 있을 때에는 다음과 같이 선언해야함

  • Map m = CollectionssynchronizedMap(new HashMap(...));

HashMap

  • HashMap의 키는 기본 자료형과 참조 자료형 모두 될 수 있다.
  • 직접 만든 클래스 사용할 경우 Object의 hashCode(), equal()잘 구현해 놓아야 함
  • get() 할적에 없는 인덱스를 가져오면 collection은 ArrayIndexOutOfBoudsException예외처리를 하지만 Map은 null로 반환
  • 동일한 키로 put()하면 대치됨 (ArrayList는 add() set())

TreeMap

  • 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글 순으로 키를 정렬함

Properties

  • Hashtable 확장. 시스템 속성값 확인 시 사용.
profile
안녕하세요.

0개의 댓글