[JAVA] 스택과 큐

2020. 11. 5. 16:12
728x90

 Queue 큐 

 

FIFO(First In First Out) 

먼저 저장된 데이터가 먼저 인출 되는 구조

 

 

 

 Stack 스택 

 

LIFO(Last In First Out)

가장 나중에 저장된 데이터가 가장 먼저 인출되는 구조

 

 

 

 

 

 

 

Stack 메소드

boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환함.
E peek() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환함.
E pop() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거함.
E push(E item) 해당 스택의 제일 상단에 전달된 요소를 삽입함.
int search(Object o)

해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환함.

이때 인덱스는 제일 상단에 있는(제일 마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작함.

 

 

 

 

Queue 메소드

boolean add(E e)

해당 큐의 맨 뒤에 전달된 요소를 삽입함.

만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴.

E element() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e) 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
E peek()

해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.

만약 큐가 비어있으면 null을 반환함.

E poll()

해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.

만약 큐가 비어있으면 null을 반환함.

E remove() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.

 

 

 

 PriorityQueue (우선순위큐) 

 

저장한 순서에 관계없이 우선순위가 높은 것부터 꺼낸다.

저장공간으로 배열을 사용하고 각 요소를 힙(heap) 자료구조 형태로 저장한다.

728x90

'Development > 자바' 카테고리의 다른 글

[JAVA] 객체지향 설계의 5가지 원칙 SOLID  (0) 2021.01.13
[JAVA] 객체지향의 특징  (0) 2021.01.13
[JAVA] 자바란?  (0) 2020.11.10
[JAVA] 배열  (0) 2020.10.28
[JAVA] 람다식이란?  (0) 2020.10.22

BELATED ARTICLES

more