Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바상속
- 원티드 별종개발자
- assert.notnull
- enum 생성자 접근 제한자
- 원티드 개발자행사
- mysql아키텍처
- 자바라이브스터디
- Item6
- 상속
- 자바쓰레드
- item15
- index skip scan
- hikari cp 설정
- SVN
- 인덱스스킵스캔
- index full scan
- 데이터베이스격리수준
- builder null
- 밍쩌니 중국어
- 자바
- Hikari Connection Pool
- 비싼객체생성
- 아이템15
- effectiveJava
- 자바에서쓰레드를 사용하는 이유
- 이펙티브자바
- 인덱스풀스캔
- mysql
- InnoDB아키텍처
- 엘라스틱서치메세지용량
Archives
- Today
- Total
✍🏻기록하는 블로그
[ JAVA ] Stack의 정의 및 ArrayList로 Stack구현하기 본문
728x90
Stack
"쌓다"의 의미로 LIFO (Last In First Out) 가장 마지막으로 들어간 데이터가 가장 먼저 나오는 자료구조
stack은 queue(Interface)와 달리 클래스이다. Stack myStack = new Stack(); 인스턴스를 생성하여 바로 사용하면 된다.
docs.oracle.com/javase/10/docs/api/java/util/Stack.html
- pop() : 마지막에 넣은 데이터를 꺼내기
- push() : 새로운 데이터를 맨 위에 넣기
- peek() : 마지막 데이터 확인
- isEmpty() : 스택이 비었는지 확인
- ArrayList, LinkedList로 구현 가능
- 게임에서 무르기, 최근 자료 가져오기 기능 구현 시 사용
ArrayList를 이용하여 Stack 구현하기
class MyStack {
private ArrayList<String> arrayStack = new ArrayList<String>();//arrayList로 스택 구현
public void push(String data){ //push 가장 마지막에 데이터 넣기
arrayStack.add(data);
}
public String pop(){
int len = arrayStack.size();
if(len == 0){
System.out.println("스택이 비었습니다.");
return null;
}
return arrayStack.remove(len - 1);
}
}
public class StackTest {
public static void main(String[] args) {
MyStack stack = new MyStack();
stack.push("A");
stack.push("B");
stack.push("C");
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
728x90
반응형
'Language > Java' 카테고리의 다른 글
[ JAVA ] 상속 (0) | 2020.11.15 |
---|---|
[ JAVA ] static 응용 - singleton pattern (0) | 2020.11.01 |
[ JAVA ] 정보은닉 - 접근 제한자 (0) | 2020.09.10 |
[ JAVA ] 생성자와 생성자 오버로딩 (0) | 2020.09.04 |
[ JAVA ] 인스턴스, 힙 메모리(동적 메모리) (0) | 2020.08.22 |