[Java] Stack, Queue

이도원·2022년 11월 23일
0

Java 문법

목록 보기
7/8

Stack

Vector 클래스를 상속
특징

  • LIFO 성질.
  • Thread-Safe.
    사용용도
  • 재귀적인 코드를 비재귀적으로 바꿀 때 사용.
  • 최근에 저장된 데이터를 나열할 때 사용.
import java.util.Stack;
//Stack의 생성
Stack<E> stack = new Stack<>();

//데이터 삽입
stack.push("강의A");

//데이터 꺼내기
String lessonName1 = stack.pop();

//데이터 확인
stack.peek();	// peek은 확인만.(pop은 꺼내면서 삭제)

//데이터 검색
stack.search("강의A");	// 데이터 찾아서 index 반환, 없으면 -1

//비어있는지 확인
stack.isEmpty();

//사이즈 확인
stack.size()

Queue

Queue 인터페이스를 구현한 클래스는 LinkedList, ArrayDeque(배열사용) 클래스
특징

  • 일반적으로 FIFO 성질.
    사용용도
  • 작업의 순차적인 처리가 필요할 때 사용.
  • 저장된 데이터를 저장된 순서대로 꺼내야 할때 사용.
    중간 데이터 접근할 이유가 없다면 LinkedList를 이용하는게 좋음
import java.util.Queue;
import java.util.LinkedList;
import java.util.ArrayDeque;

// LinkedList를 이용한 Queue
Queue<E> queue = new LinkedList<>();

// ArrayDeque를 이용한 Queue
Queue<E> queue = new ArrayDeque<>();

//데이터 삽입
queue.add(data)

//데이터 꺼내기
queue.poll();	//이터가 존재하지 않는다면 null을 반환

//맨 앞데이터 확인
queue.peek();

//비어있는지 확인
queue.isEmpty();

//크기
queue.size();
profile
studying

0개의 댓글