본문 바로가기

개발

Java - 스택과 큐 (Stack & Queue)

반응형

스택 - LIFO 구조, 마지막에 저장된 것을 제일 먼저 꺼내게 된다. 

큐 - FIFO 구조, 제일 먼저 저장된 것을 제일 먼저 꺼내게 된다. 

스택
 - boolean empty() : 비어있는지 확인 
 - Object peek() : 맨위의 값 반환 꺼내지는 않는다. 비었을 때는 EmptyStackException 발생
 - Object pop() : 맨위의 값 반환 꺼낸다. 비었을 때는 EmptyStackException 발생
 - Object push(Object item) : 객체 저장
 - int search(Object o) : 객체의 위치를 반환 못찾으면 -1 위치는 1부터 시작 


 - boolean add(Object o) : 객체를 큐에 추가. 저장공간이 부족하면 IllegalStateException 발생
 - Object remove() : 객체를 꺼내어 반환 비어있으면 NoSuchElementException 발생 
 - Object element() : 삭제없이 요소를 읽어온다. 객체를 꺼내어 반환 비어있으면 NoSuchElementException 발생
 - boolean offer(Object o) : 큐에 객체를 저장 ** 예외 발생 안함
 - Object Poll() : 객체를 꺼내어 반환 ** 비어있으면 null 반환 예외 발생 안함
 - Object peek() : 삭제 없이 요소를 읽어온다. ** 예외 발생 안함

큐는 인터페이스 큐를 구현한 클래스를 사용하면 된다.
LinkedList 가 있음 이것을 이용해서 큐를 사용하면 된다. 
Queue q = new LinkedList<Integer>();

활용 예 
 - 스택 : 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 브라우저의 뒤로/앞으로
 - 큐 : 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)

 

반응형

'개발' 카테고리의 다른 글

Java - Comparator와 Comparable  (0) 2021.06.06
Java - Arrays  (0) 2021.06.06
Java - LinkedList  (0) 2021.06.06
Java - ArrayList  (0) 2021.06.06
Java - 컬렉션 프레임웍(collections framework)  (0) 2021.06.06