[자바의정석]Java - collection framework(2) #011

박정현·2022년 1월 26일
0

Java

목록 보기
11/16
post-thumbnail

스택과 큐(Stack & Queue)

스택은 클래스, 큐는 인터페이스로 구현되어있다

스택(Stack)

  • LIFO구조 . 마지막에 저장된것을 제일 먼저 꺼낸다 후입선출
  • 저장(push),추출(pop)
    스택 메서드
  • boolean empty() : 비었는지 확인
  • Object peek() : Stack의 맨 위에 저장된 객체를 반환. pop과달리 객체를 꺼내지는 않는다
  • Object pop() : Stack 의 맨 위에 저장된 객체를 꺼낸다
  • Object push() : Stack에 객체를 저장한다
  • int search(Object o) : 주어진 객체를 찾는다, 위치는 0이아닌 1부터 시작

큐(Queue)

  • FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼낸다 선입선출
  • 저장(offer),추출(poll)
    큐 메서드
  • boolean add() : 지정된 객체를 Queue에 추가한다
  • Object remove() : Queue에서 객체를 꺼내서 반환한다, 예외발생함
  • Object element() : 삭제없이 요소를 읽어온다 peek과 달리 Queue가 비었을 때 NoSuchElementException 발생
  • boolean offer(Object o) : Queue에 객체를 저장한다
  • Object poll() : Queue에 객체를 꺼내서 반환 비었으면 null반환하고 예외발생 x
  • Oject peek(): 삭제없이 요소를 읽어온다.

스택&큐 간단한 실습

스택&큐 의 활용

  • 스택의 활용 예 : 수식계산, 수식괄호검ㅅ, 워드프로세서의 undo/redo
    웹브라우저의 뒤로/앞으로

  • 큐의 활용 예 : 최근사용문서, 인쇄작업 대기목록,버퍼

  • 괄호 검증

  • 명령어 저장

Iterator,ListIterator,Enumeration

lterator,Listlterator,Enumeration

  • 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스
  • Enumeration 은 Iterator의 구버전
  • ListIterator 는 Iterator의 접근성을 향상 (단방향 -> 양방향)

메서드

  • 확인 : boolean hasNext() : 읽어올 요소가 있는지 확인
  • 읽기 : Object next() : 다음 요소를 읽어온다 hasNext로 확인후 사용하는게 좋다

사용하는이유 사용법

  • 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화 한것
  • list,set,map 다 읽는법이 다른데 이것을 하나로 표준화
  • 컬렉션에 iterator()를 호출해서 iterator를 구현한 객체를 얻어 사용
List list = new ArrayList();
Iterator it = list.iterator();

while(it.hasNext()//요소확인){
	syso(it.next());//읽어오기
}

Map과 Iterator

  • Map에는 iterator()가 없다 . keySet(),entrySet(),values()를 호출 해야함
Map map = new HashMap();
//...
Iterator it = map.entrySet().iterator

Arrays

Arrays

  • 배열을 다루기 편리한 메서드(static) 제공
  1. 배열의 출력 - toString()
  2. 배열의 복사 - copyOf(),copyOfRange()
  3. 배열채우기 - fill(),setAll()
  4. 배열의 정력과 검색 - sort(),이진탐색:binarySearch()
    이진탐색을 하기위해서는 정렬을 먼저해줘야한다
  5. 다차원 배열의 출력 - deepToString()
  6. 다차원 배열의 비교 - deepEquals()
  7. 배열을 List로 변환 - asList(배열(가변 매개변수))
  8. 람다와 스트림 관련 - parallelXXX(),spliterator(),stream()

순차검색 과 이진검색(이분검색)

  • 순차 검색 : 앞에서 부터 순서대로 찾는것
  • 이진 검색 : 정렬된 배열을 검색함 , 반씩 나누어 크기를 비교하면서 탐색한다

Comparator와 Comparable

Comparator와 Comparable

  • Comparable : 기본 정렬기준을 구현하는데 사용
  • Comparator : 기본 정렬기준 외에 다른 기준으로 정룔하고자 할때 사용
  • 객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인퍼페이스
  • compare(), compartTo()는 두 객체의 비교 결과를 반환
    같으면 0, 오른쪽이 크면 음수, 작으면 양수
profile
빠샤

0개의 댓글

관련 채용 정보