(1) 순서(인덱스)가 존재하는 데이터의 집합니다.
(2) 데이터가 중복되어도 저장이 가능하다.(순서만 다르면 중복저장 가능함).
Stack, Vector, LinkedList, ArrayList 등
Stack => 후입선출(LIFO)구조
Queue => 선입선출(FIFO)구조
stack 명령
1) 자료 입력 : push(저장할 값)
2) 자료 출력 : pop() => 자료를 꺼내온 후 꺼내온 자료를 stack에서 삭제한다.
ex)
LinkedList stack = new LinkedList();
stack.push("홍길동");
stack.push("일지매");
stack.push("변학도");
stack.push("강감찬");
System.out.println("현재 stack값들 : " + stack);
String data = stack.pop();
System.out.println("꺼내온 자료 : " + data);
System.out.println("꺼내온 자료 : " + stack.pop());
System.out.println("현재 stack값들 : " + stack);
stack.push("성춘향");
System.out.println("현재 stack값들 : " + stack);
System.out.println("꺼내온 자료 : " + stack.pop());
Queue의 명령
1) 자료 입력 : offer(저장할 값)
2) 자료 출력: poll() => 자료를 Queue에서 꺼내온 후 꺼내온 자료를 Queue에서 삭제한다.
ex)
LinkedList queue = new LinkedList();
queue.offer("홍길동");
queue.offer("일지매");
queue.offer("변학도");
queue.offer("강감찬");
System.out.println("현재 queue의 값 : " + queue);
String temp = queue.poll();
System.out.println("꺼내온 자료 : " + temp);
System.out.println("꺼내온 자료 : " + queue.poll());
System.out.println("현재 queue의 값 : " + queue);
if(queue.offer("성춘향")) {
System.out.println("신규 등록 자료 : 성춘향");
}
System.out.println("현재 queue의 값 : " + queue);
System.out.println("꺼내온 자료 : " + queue.poll());