Skills/Java

Java - Stack

aoaa 2022. 5. 23. 17:30

https://refreshment-wg.tistory.com/63?category=1010294 

 

Stack & Queue

1. Stack  Stack은 선형 자료구조의 일종으로 자료를 쌓아 올리는 형태의 자료구조입니다. Data를 맨 아래부터 쌓기 때문에 가장 먼저 넣은 원소가 늦게 나오고, 나중에 들어간 원소가 가장 먼저 나

refreshment-wg.tistory.com

 먼저 Stack에 대한 설명은 위의 글을 보고오시면 될 것 같습니다. 한 줄 요약하자면 LIFO(Last in First Out)의 형태를 가진다는 것입니다. 

 


1. Stack 선언

import java.util.Stack;
Stack<Generic> name = new Stack<>(); 

// 예시로 char형 stack 선언
Stack<String> stack = new Stack<>();

Java에서 stack을 선언한 뒤, generic, stack name을 넣고 선언하면 됩니다.

 

2. Stack 값 추가

Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);

 Stack에 값을 추가한다고 하면 push(value)메서드를 사용합니다. 그럼 다음과 같이 Stack이라는 구조에 Data가 쌓이게 됩니다.

 

 

3. Stack 값 삭제

Stack<Integer> stack=new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop();
stack.clear();

 Stack에서 값을 삭제하고 싶다면 pop() 메서드를 사용합니다. LIFO이기 때문에 가장 위에 쌓인 Data가 제거됩니다. 또한 Stack에 있는 모든 Data를 제거하고 싶다면 clear() 메서드를 사용하면 됩니다.

 

4. 그 외 메서드 

Stack<Integer> stack=new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);

stack.peek();
stack.size();
stack.empty();
stack.contains(n);

 Stack에서 가장 위에 쌓인 data를 출력하고 싶다면 peek() 메서드를 사용합니다. 위에 코드라면 다음과 같이 될 것입니다.

 그 외로, size()는 stack의 크기를 출력하는 것입니다. stack에는 3개의 data가 쌓여있기 때문에 3이 출력이 됩니다.

empty() 메서드는 stack이 비어있는지를 확인하고 boolean으로 값을 반환합니다. 위의 같은 경우는 3개가 쌓여있기 때문에 false를 반환하게 됩니다. 

 contains(n)은 stack에 n이라는 data가 있는지 boolean으로 결과를 반환합니다. n에 1이 들어간다면, data가 있기 때문에 true를 반환하게 되겠죠.

 

 

'Skills > Java' 카테고리의 다른 글

Java - ceil,round  (0) 2022.05.31
Java - 상속과 조합  (0) 2022.05.29
Java - Parameter, Argument  (0) 2022.05.20
Java new 연산자  (0) 2022.05.10
Scanner & BufferedReader  (0) 2022.05.07