Java - Stack

CYSSSSSSSSS·2024년 4월 20일
0

자바

목록 보기
20/26

Java

Stack

Stack?

  • LIFO 구조를 가진 자료구조
  • 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조
  • 가장 나중에 쌓은 데이터가 먼저 나가는 구조
  • 단순한 구조이지만 데이터 개수가 고정적이고 + 저장 공간에 낭비를 발생 시킬 수 있다.
  • 자바에서는 Stack이라는 클래스를 제공해주고 있다.

Import

import java.util.Stack;

Stack<T>stack = new Stack<T>();	// 1
Stack stack = new Stack();	//2
  • 1번 같이 선언할 경우 자료형을 명시해줘야 한다.
  • 2번은 모든 자료형을 전부 사용할 수 있다.(이전에 int형 데이터를 넣어도 다른 자료형의 데이터 삽입 가능)

push vs add

  • 삽입을 할때는 push,add 함수를 사용하여 데이터를 삽입 시킬수 있습니다.
  • push는 데이터를 넣기만 할때 사용하고
  • add는 정상적으로 삽입되면 true / 실패시 false(StackOverFlow 발생)
stack.push(1);
boolean result = stack.add(2);	// true 발생 

pop vs remove

  • 삭제 함수는 pop,remove함수를 사용한다.
  • pop함수에서 만약에 스택이 공백일 경우 EmptyStackException이 발생한다.
  • remove함수는 index를 입력하여 지정된 index의 데이터를 삭제할 수있는데 이때 옳지 않은 index를 입력할 시 ArrayIndexOutOfBoundsException이 발생한다.
stack.pop();
stack.remove(1); // 첫번째 index에 존재하는 값을 반환 

peek

  • 스택의 Top에 있는 원소를 반환시 사용한다.
stack.peek();
  • stack에 가장 위에 있는 원소를 반환

size

  • stack의 크기를 알고 싶을때 사용하는 함수
stack.size();

isEmpty vs empty

  • 스택이 비어 있는지 확인하는 함수
stack.isEmpty();
stack.empty();
  • 스택 안에 해당 원소가 있는지 확인하는 함수
stack.search(1);

set

  • 스택안에 값을 변경하는 함수
stack.set(idx , value) 
  • idx에 위치한 값을 value로 변경한다.

elementAt

  • 지정된 인덱스의 값을 반환 옳지 않은 index 발생시 ArrayIndexOutOfBoundsException 발생
stack.elementAt(index);

clear

  • 스택을 초기화 할때 사용하는 함수
stack.clear();
profile
개발자 되고 싶어요

0개의 댓글

관련 채용 정보