반응형
Stack
과Queue
는 코팅 테스트에서 심심치 않게 나오는 친구들입니다. 가끔 풀다 보면 까먹는 경우가 있어서Stack
과Queue
의 간단한 개념만 잡고 JAVA에서 어떻게 사용하는지 정리해보려고 합니다.
간단 개념
- Stack : 마지막에 저장한 데이터를 가장 먼저 꺼내는
LIFO(Last-In-First-Out)
인 자료구조 - Queue : 먼저 들어간 데이터를 먼저 꺼내는
FIFO(First-In-First-Out)
인 자료구조
사용법
Stack
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.peek(); // 2를 return , stack = [1, 2]
stack.pop(); // 2를 return , stack = [1]
- push(object item) :
Stack
에 객체(item
) 저장 - peek() :
Stack
에 맨 위의 저장된 객체를 반환, 객체를 꺼내지는 않음(Stack에 비어 있을 경우EmptyStackException
발생) - pop() :
Stack
의 맨 위에 저장된 객체를 반환, 객체를 꺼냄 (Stack에 비어 있을 경우EmptyStackException
발생) - isEmpty() :
Stack
이 비어있는지boolean
값으로 반환
Queue
Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
queue.peek(); // 1를 return, queue = [1,2]
queue.poll(); // 1를 return , queue = [2]
- offer(object item) :
Queue
에 객체(item
) 저장 - peek() :
Queue
에 맨 위의 저장된 객체를 반환, 객체를 꺼내지는 않음(Queue가 비어 있을 경우 null 반환) - pop() :
Queue
의 맨 앞에 저장된 객체를 반환 (Queue가 비어 있을 경우 null 반환) - isEmpty() :
Queue
이 비어있는지boolean
값으로 반환
반복문 사용법
Queue
Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
//while문 사용
while(!queue.isEmpty()){
int temp = queue.poll(); // 1 -> 2 로 순회
/****************
*
* 활용할 로직 작성
*
***************/
}
//iterator 사용
Iterator<Integer> iter = queue.iterator();
while(iter.hasNext()){
int temp = iter.next(); // 1 -> 2 로 순회
/****************
*
* 활용할 로직 작성
*
***************/
}
Stack
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
//while문 사용
while(!stack.isEmpty()){
int temp = stack.pop(); // 2 -> 1로 순회
/****************
*
* 활용할 로직 작성
*
***************/
}
//iterator 사용
Iterator<Integer> iter = stack.iterator();
while(iter.hasNext()){
int temp = iter.next(); // 1 -> 2로 순회
/****************
*
* 활용할 로직 작성
*
***************/
}
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] ArrayList에서 Array로 변환하기 (Integer, String) (0) | 2021.11.01 |
---|---|
[JAVA] 문자열(String) 비교 시 == 와 equals의 차이점 (0) | 2021.10.29 |
댓글