자료구조는 여러데이터의 묶음을 저장하고 사용하는 방법을 정의한 것이다.
이 중 Stack과 Queue에 대해 알아보자.
//stack 생성
Stack<타입> 인스턴스명 = new Stack<>();
후입선출(LIFO)
데이터는 하나씩 넣고 뺄 수 있음
하나의 입출력 방향을 가지고 있음
stack사용의 예 : 프링글스, 브라우저에서 이전페이지, 다음페이지 이용.
- stack의 기본 메서드
push() : 스택에 데이터추가
pop() : 가장 나중데이터 삭제하고 반환
size() : 스택 데이터 크기 반환
peek() : 가장 나중데이터 반환
show() : 전체 데이터 String 타입으로 반환
clear() : 스택 모든 데이터 삭제
//queue 생성
Queue<타입> 인스턴스명 = new LinkedList<>();
- queue는 인터페이스이므로 객체 생성이 불가능하다.
따라서 LinkedList를 형변환하여 사용한다
데이터를 넣는 것을 enqueue, 꺼내는 것을 dequeue 라고 함
데이터가 입력된 순서대로 처리할 때 사용
데이터는 하나씩 넣고 뺄 수 있음
두 개의 입출력 방향을 가지고 있음
stack 사용의 예 : 톨게이트 , 프린터 인쇄
프린터 인쇄시에 임시 기억 장치 Queue에 해당 문서가 들어가고 들어온 문서를 순서대로 인쇄한다.
- queue의 기본 메서드
add() : 큐에 데이터 추가
poll() : 가장 처음 데이터 삭제, 반환
size() : 큐 데이터 크기 반환
peek() : 큐에 가장 먼저 추가된 데이터 반환
show() : 전체 데이터 String타입으로 반환
clear() : 큐 모든 데이터 삭제
A와 B가 서로 입출력을 수행하는데 있어서 속도차이를 극복하기 위해 사용하는 임시 저장공간
버퍼링 : 버퍼를 채우는 동작을 의미함