Java의 Stack과 Dequeue

맹민재·2023년 5월 5일
0

Java

목록 보기
9/32

Stack 사용하기

Stack 선언

import java.util.Stack;	//import 하기
Stack<String> stack = new Stack<>();	//String 형 Stack 선언

Stack의 메소드들

stack.push(10);		//stack에 10 추가
stack.pop();		//stack의 마지막 push값 제거
stack.clear();		//stack의 전체 삭제
stack.peek();		//stack의 마지막 push값 확인
stack.size();		//stack의 배열 길이 수
stack.empty();		//stack이 비어있으면 true (있으면 false)
stack.contains(1);	//stack에 값(1)이 들어있으면 true (없으면 false)

Dequeue 사용하기

Dequeue 선언

Deque<Integer> deque = new LinkedList<>();

Deque 사용하기

  • 값 삽입

add - 용량 초과시 예외 발생
add() - 마지막에 원소 삽입
addFirst() - 처음에 원소 삽입
addLast() - 마지막에 원소 삽입

0ffer - 용량 제한에 걸릴경우 False 반환, 삽입 성공시 True 반환
offer() - 마지막에 원소 삽입
offerFirst() - 처음에 원소 삽입
offerLast() - 마지막에 원소 삽입
  • 값 삭제
remove: 덱이 비어있는 경우 예외 발생
remove() - 맨 앞의 원소 제거 후 해당 원소를 리턴
removeFirst() - 맨 앞의 원소 제거 후 해당 원소를 리턴
removeLast() - 마지막 원소 제거 후 해당 원소를 리턴

poll: 덱이 비어있는 경우 null return
poll() - 맨 앞의 원소 제거 후 해당 원소를 리턴
pollFirst() - 맨 앞의 원소 제거 후 해당 원소를 리턴
pollLast() - 마지막 원소 제거 후 해당 원소를 리턴
  • 원소 확인
get: 덱이 비어있는 경우 예외 발생
getFirst() - 맨 앞의 원소를 리턴
getLast() - 마지막 원소를 리턴

peek: 덱이 비어있는 경우 null 리턴
peek() - 맨 앞의 원소를 리턴
peekFirst() - 맨 앞의 원소를 리턴
peekLast() - 마지막 원소를 리턴
  • 기타
removeFirstOccurrence(x) - 덱의 맨 앞부터 탐색하여 x와 동일한 첫 원소를 제거
동일한 원소가 없을 시 덱이 변경되지 않음 
removeLastOccurrence(x) - 덱의 마지막부터 탐색하여 x와 동일한 첫 원소를 제거
동일한 원소가 없을 시 덱이 변경되지 않음 

element() == removeFirst()
addFirst() == push()
removeFirst() == pop()
remove(x) - removeFirstOccurrence(x)와 동일
contains(x) - 덱에 x와 동일한 원소가 있는지 true 혹은 false 반환
size() - 덱의 원소 개수 리턴
iterator() - 덱의 반복자(iterator) 반환
isEmpty() - 덱이 비어있는지 true 혹은 false 반환
  • 순회
Deque<Integer> deque = new LinkedList<>();

deque.add(3);
deque.add(7);
deque.add(5);

for (int de : deque) {
	System.out.print(de + " ");
}

System.out.println();

for (Iterator<Integer> it = deque.iterator(); it.hasNext();) {
	System.out.print(it.next() + " ");
}

System.out.println();

Iterator<Integer> it = deque.iterator();
while (it.hasNext()) {
	System.out.print(it.next() + " ");
}
profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글