Notice
Recent Posts
Recent Comments
Link
S E P H ' S
[Java] 5. Collection (Stack, Queue) 본문
Stack, Queue
스택(Stack)
선형 자료구조의 일종으로 마지막에 저장한 데이터를 가장 먼저 꺼내는 LIFO(Last In First Out) 구조입니다.
큐(Queue)
선형 자료구조의 일종으로 처음 저장한 데이터를 가장 먼저 꺼내는 FIFO(First In First Out) 구조입니다.
Java에서 Stack 과 Queue의 구현
스택은 순차적으로 데이터를 추가하고 삭제하기 때문에 배열 기반인 ArrayList와 같은 컬렉션 클래스로 구현하는 것이 적합합니다.
큐는 데이터를 꺼낼 때 항상 첫번째 데이터를 삭제하기 때문에 배열 기반의 컬렉션보다 데이터의 추가 삭제가 쉬운 LinkedList로 구현하는 것이 적합합니다.
Stack 메소드
메소드 | 설명 |
boolean empty() | Stack이 비어있는지 알려줍니다 |
Object peek() | Stack의 맨 위에 저장된 객체를 반환합니다. pop()과 달리 객체를 반환하고 삭제하지 않습니다. 비어있다면 EmptyStackException이 발생합니다. |
Object pop() | Stack의 맨 위에 저장된 객체를 반환하고 삭제합니다. 비어있다면 EmptyStackException이 발생합니다. |
Object push(Object obj) | Stack에 객체를 저장합니다. |
int search(Object obj) | Stack에서 주어진 객체를 찾아서 그 위치를 반환합니다. 찾지 못한다면 -1을 반환합니다. 배열과 달리 0이 아닌 1에서 시작합니다. |
Queue 메소드
메소드 | 설명 |
boolean add(Object obj) | 객체를 Queue에 추가합니다. 성공하면 true를 반환합니다. 저장공간이 부족하면 IllegalStateException이 발생합니다. |
Object remove() | Queue에서 객체를 꺼내 반환합니다. 비어있다면 NoSuchElementException이 발생합니다. |
Object element() | 삭제없이 요소를 읽어옵니다. peek과는 다르게 Queue가 비어있다면 NoSuchElementException이 발생합니다. |
boolean offer(Object obj) | Queue에 객체를 저장하고 성공하면 true, 실패하면 false를 반환합니다. |
Object poll() | Queue에서 객체를 꺼내서 반환합니다. 비어있다면 null을 반환합니다. |
Object peak() | 삭제없이 요소를 읽어옵니다. Queue가 비어있다면 null을 반환합니다. |
'Programing & Coding > JAVA' 카테고리의 다른 글
[Java] 7. Generic (0) | 2022.01.10 |
---|---|
[Java] 6. Annotation (0) | 2022.01.04 |
[Java] 4. Collection (List, Map, Set) (0) | 2021.12.28 |
[Java] 3. 가비지컬렉션(Garbage Collection) (0) | 2021.12.28 |
[Java] 2. 자바 가상 머신 (JVM) (0) | 2021.12.17 |