컬렉션 프레임워크와 큐, 스택
Queue<E> 인터페이스를 구현하는 컬렉션 클래스들
- Queue<E>
- Deque<E>
1. Queue<E>, 큐
Queeue<E> 인터페이스의 메소드들
- boolean add(E e) : 넣기
- E remove() : 꺼내기, 삭제
- E element() : 확인하기
위의 메소드의 예외를 처리하기 위한 메소드 (권장)
- boolean offer(E e) : 넣기, 넣을 공간이 부족하면 false 반환
- E poll() : 꺼내기, 꺼낼 대상 없으면 null 반환
- E peek() : 확인하기, 확인할 대상이 없으면 null 반환
큐의 구현
public static void main(String[]args){
Queue<String> que = new LinkedList<>();
que.offer("Box");
que.offer("Toy");
que.offer("Robot");
// 무엇이 나올지 확인
System.out.println("next = "+que.peek());
// 첫번째, 두번재 인스턴스 꺼내기
System.out.println(que.poll());
System.out.println(que.poll());
// 무엇이 다음에 나올지 확인
System.out.println("next = "+que.peek());
// 마지막 인스턴스 꺼내기
System.out.println(que.poll());
}
Queeue<E> 인터페이스의 메소드들
- boolean add(E e) : 넣기
- E remove() : 꺼내기, 삭제
- E element() : 확인하기
위의 메소드의 예외를 처리하기 위한 메소드 (권장)
- boolean offer(E e) : 넣기, 넣을 공간이 부족하면 false 반환
- E poll() : 꺼내기, 꺼낼 대상 없으면 null 반환
- E peek() : 확인하기, 확인할 대상이 없으면 null 반환
큐의 구현
public static void main(String[]args){
Queue<String> que = new LinkedList<>();
que.offer("Box");
que.offer("Toy");
que.offer("Robot");
// 무엇이 나올지 확인
System.out.println("next = "+que.peek());
// 첫번째, 두번재 인스턴스 꺼내기
System.out.println(que.poll());
System.out.println(que.poll());
// 무엇이 다음에 나올지 확인
System.out.println("next = "+que.peek());
// 마지막 인스턴스 꺼내기
System.out.println(que.poll());
}
[코드 설명]
- LinkedList는 List와 동시에 Queue를 구현하는 컬렉션 클래스입니다.
따라서 어떠한 타입의 참조 변수로 참조하느냐에 따라 '리스트' 또는 '큐'로 사용할 수 있습니다.
2. Deque, 스택
Deque 인터페이스의 메소드들
<앞에서 넣고 확인>
- boolean offerFirst(E e) : 넣기 공간 부족하면 false 반환
- E poolFirst() : 꺼내기, 꺼낼 대상 없으면 null 반환
- E peekFirst() : 확인하기, 확인할 대상 없으면 null 반환
<뒤에서 넣고 확인>
- boolean offerLast(E e) : 넣기, 공간이 부족하면 false 반환
- E poolLast() : 꺼내기, 꺼낼 대상 없으면 null 반환
- E peekLast() : 확인하기, 확인할 대상 없으면 null 반환
스택의 구현
public static void main(String[]args){
Deque<String> deq = new ArrayDeque<>();
Deque<String> deq = new LinkedList<>(); // 이렇게도 생성이 가능하다.
// 앞으로 넣고
deq.offerFirst("1.Box");
deq.offerFirst("2.Toy");
deq.offerFirst("3.Robot");
// 앞에서 꺼내기
System.out.println(deq.pollFirst());
System.out.println(deq.pollFirst());
System.out.println(deq.pollFirst());
}
public static void main(String[]args){
Deque<String> deq = new ArrayDeque<>();
Deque<String> deq = new LinkedList<>(); // 이렇게도 생성이 가능하다.
// 앞으로 넣고
deq.offerFirst("1.Box");
deq.offerFirst("2.Toy");
deq.offerFirst("3.Robot");
// 앞에서 꺼내기
System.out.println(deq.pollFirst());
System.out.println(deq.pollFirst());
System.out.println(deq.pollFirst());
}
[코드 설명]
- 스택의 구현은 Deque<E>를 사용하며, 한쪽에서만 넣고, 빼는 것으로 구현할 수 있습니다.
Author And Source
이 문제에 관하여(컬렉션 프레임워크와 큐, 스택), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@songyw0517/컬렉션-프레임워크와-큐-스택저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)