1. STACK

LIFO(LAST IN FIRST OUT) 자료구조를 구현한 클래스

<STACK &rarr; LAST IN LAST OUT>

- STACK은 밑이 막혀 있는 통 구조여서, 0, 1, 2를 순서대로 저장한 다음 다시 추출하려면 2부터 꺼내야 한다.- 입력 순서 0, 1, 2- 출력 순서 2, 1, 0

- 순차적 추가 삭제가 이루어지기 때문에 배열이 적합하다.

 

1-1. STACK 사용법

- STACK은 클래스이기 때문에 객체 생성이 가능하다.

// 사용 예제
import java.util.Stack;

public class Stack_practice {
	public static void main(String[] args) {
		Stack st = new Stack();
		st.push("0");
		st.push("1");
        	st.push("2");
		
		while(!st.empty()) {	// 스택이 빌 때까지 반복
			System.out.println(st.pop());	// 2, 1, 0 순으로 출력됨
		}
	}
}

 

1-2. STACK 메서드

메서드 설명 예외 발생 여부
boolen empty() Stack이 비어있는지 알려준다. -
Object peek() Stack의 맨 위에 저장된 객체를 반환.
pop()과 달리 Stack에서 객체를 꺼내지는 않는다.
Stack이 비어있을 때 사용하면
EmptyStackException 발생,
예외처리가 필요하다.
Object pop() Stack의 맨 위에 저장된 객체를 꺼낸다. Stack이 비어있을 때 사용하면
EmptyStackException 발생,
예외처리가 필요하다.
Object push(Object item) Stack에 객체(item)를 저장한다. -
int search(Object o) Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환하고, 못 찾으면 -1을 반환한다. indexOf()와 그 역할이 비슷하나 배열과 달리 0이 아닌 1부터 시작된다. -

 

 

 

2. QUEUE

FIFO(FIRST IN FIRST OUT) 자료구조에서 사용되는 메소드를 정의하고 있는 인터페이스

<QUEUE &rarr; FIRST IN FIRST OUT>

- QUEUE는 위아래가 모두 뚫려있는 구조여서, 저장한 순서대로 꺼낼 수 있다.

- 입력 순서 0, 1, 2

- 출력 순서 0, 1, 2

- 배열에 넣을 경우 0부터 꺼내야 하기 때문에 비효율적. LinkedList 사용이 적합하다.

 

2-1. QUEUE 사용법

- QUEUE는 인터페이스이기 때문에 객체 생성이 불가능하다.

- 따라서 QUEUE를 사용하기 위해서는 직접 구현하는 방법과 QUEUE가 구현되어 있는 클래스를 사용하는 방법이 있다.

- JAVA API 문서에서 찾을 수 있고, 대표적으로 LinkedList를 많이 사용한다.

// 사용 예제
import java.util.LinkedList;
import java.util.Queue;

public class Queue_practice {

	public static void main(String[] args) {
		Queue q = new LinkedList();
		
		q.offer("0");
		q.offer("1");
		q.offer("2");
		
		while(!q.isEmpty()) {
			System.out.println(q.poll());	// 0, 1, 2 순으로 출력됨
		}
	}
}

 

1-2. QUEUE 메서드

메서드 설명 예외 발생 여부
boolen add(Object o) 지정된 객체를 Queue에 추가한다. 성공하면 true를 반환 저장공간이 부족하면
IllegalSstateeException 발생,
예외처리가 필요하다.
Object remove() Queue에서 객체를 꺼내 반환 비어있을 때 사용하면
NoSuchElementException
발생, 예외처리가 필요하다.
Object element() 삭제없이 요소를 읽어온다. peek와 달리,
Queue가 비어있을 때 사용하면
NoSuchElementException
발생, 예외처리가 필요하다.
★boolean offer(object o) Queue에 객체를 저장. 성공하면 true, 실패하면 false를 반환 -
Object poll() Queue에서 객체를 꺼내서 반환(삭제 기능). 비어있으면 null을 반환. if(obj==null) 처리해주면 된다. -
Object peek() 삭제없이 요소를 읽어온다. Queue가 비어있으면 null을 반환 -

 

728x90

'이론 > 개인공부' 카테고리의 다른 글

함수형 인터페이스  (0) 2023.01.31
람다식  (0) 2023.01.31
자바 스트림(Stream)  (0) 2022.12.30
OSI 7계층(OSI 7 Layers)  (1) 2022.08.29
정보처리기사 필기  (0) 2022.04.25

+ Recent posts