Stack
- LIFO(Last In, First Out) 원칙을 따르는 선형 데이터 구조.
- 새로운 요소는 항상 최상위에 삽입되고, 삭제 역시 최상위에서만 이루어 진다.
Stack의 주요 메서드
- push( {value} ) : Stack의 맨 위에 element를 삽입한다.
- pop() : Stack의 맨 위에 있는 element를 삭제하고 반환한다.
- peek() : Stack의 맨 위에 있는 요소를 삭제하지 않고 반환한다.
- isEmpty() : Stack이 비어있는지 여부를 반환한다.
- empty() : Stack이 비어있는지 여부를 반환한다.
- search() : Stack에서 element가 몇 번째 위치에 있는지 반환한다. 1부터 시작한다.
- clear() : Stack의 모든 값들을 삭제한다.
이 때 empty() 메서드와 isEmpty() 메서드는 같은 기능을 하지만 다음과 같은 차이가 있다.
- empty() 는 Java Stack 클래스에서 제공하는 메서드이다.
- isEmpty() 는 Java Collection interface에서 제공한다.
Queue
- FIFO(First In First Out) 원칙을 따르는 선형 구조 체계이다.
- 새로운 요소는 항상 마지막에 삽입되고, 삭제는 첫 번째 요소에서 이루어진다.
Queue의 주요 메서드
- add(element) : Queue의 끝에 element를 삽입한다.
- offer(element) : Queue의 끝에 element를 삽입한다.
- peek() : Queue의 첫 번째 요소를 삭제하지 않고 반환한다.
- remove() : Queue의 첫 번째 요소를 삭제하고 반환한다.
- poll() : Queue의 첫 번째 요소를 삭제하고 반환한다.
- element() : Queue의 첫 번째 요소를 삭제하지 않고 반환한다.
add(E element) 와 offer(E element) 메서드는 같은 기능을 하지만 다음과 같은 차이가 있다.
- add(E element) 메서드는 Queue의 용량제한에 도달하면 IllegalStateException을 발생시킨다.
- offer(E element) 메서드는 Queue의 용량제한에 도달하면 요소를 추가하지 않고 false를 반환한다.
poll() 메서드와 remove() 메서드는 같은 기능을 하지만 다음과 같은 차이가 있다.
- poll() 메서드는 Queue가 비어있는 경우 null을 반환한다.
- remove 메서드는 Queue가 비어있는 경우 NoSuchElementException을 발생시킨다.
'[Java] > 문법, 자료구조, 알고리즘' 카테고리의 다른 글
좌표 정렬 (0) | 2023.03.24 |
---|---|
Heap (0) | 2023.03.21 |
Scanner vs BufferedReader (0) | 2023.03.16 |
TreeSet, Red-Black Tree (0) | 2023.03.10 |
HashMap (0) | 2023.03.10 |