이 문서는 java의 Collection Framework의 대한 기본적인 이해를 바탕으로합니다.(Collection객체의 자손들)
이 문서는 Stack과 Queue에 대한 기초적인 개념 이해를 바탕으로 합니다.
Java에서 처음 Stack과 Queue를 처음 공부할 때 조금 헷갈리는 부분이 많았다.
내가 받은 느낌은 체계화가 잘 되어있는 다른 설계들과 달리 좀 통일되지 않은 느낌이 들었다.
그래서 내가 헷갈리는 점들을 모아 정리했다.
Java에서의 Stack과 Queue
일단 가장 먼저 알아야할 것이 Java에서
Stack은 Class로
Queue는 Interface로 구현이 되어있다는 것이다.
따라서 사용할 때 Stack은 Stack st = new Stack(); 과 같이 사용하고
Queue는 다양한 Queue 인터페이스의 구현체로 사용을 하여야한다.
대표적인 Queue 구현체는 LinkedList가 있다.
LinkedList의 역할이 비슷한 메서드들
LinkedList를 공부하다가 이상한 점이 있었다.
비슷한 역할을 하는 메서드가 중복되어서 들어가 있었다.
아래는 내가 공부하던 책에서 각 메서드를 설명한 것을 옮겨놓은 것이다.
boolean add(Object o) | 지정된 객체를 끝에 추가 , 성공시 true |
boolean offer(Object o) | 지정된 객체를 끝에 추가 , 성공시 true |
Object remove() | Queue에서 객체를 꺼내서 반환 |
Object poll() | Queue에서 객체를 꺼내서 반환 |
... | ... |
Stack과 Queue의 메서드
Stack | Queue | |||
삽입 | Object push(Object item) | boolean add(Object o) | 지정된 객체를 Queue에 추가 저장공간이 부족하면 IllegalStateException |
|
boolean offer(Object o) | 지정된 객체를 Queue에 추가 실패시 false 리턴 |
|||
추출 | Object pop() | EmptyStackException | Object remove() | 추출 후 값 삭제 Queue가 비었을때 NoSuchElementException |
Object poll() | 추출 후 값 삭제 Queue가 비었을때 null 반환 |
|||
조회 | Object peek() | EmptyStackException | Object element() | 첫번째 값 조회 Queue가 비었을때 NoSuchElementException |
Object peek() | 첫번째 값 조회 Queue가 비었을때 null |
더 많은 메서드가 있지만 서로 대조되는 메서드들 위주로 나열했다.
두껍게 처리된 부분은 Queue 인터페이스의 구현 메서드 이다.
'JAVA > 자료구조' 카테고리의 다른 글
[배열] Vector 클래스 - 동적으로 크기가 관리되는 객체배열 (0) | 2022.11.03 |
---|