본문 바로가기
Java/Java

컬렉션/List<E>) Queue<E>, 주요 메소드

by 박채니 2022. 3. 31.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


컬렉션이란?

- 동일한 타입을 묶어 관리하는 자료 구조

 

컬렉션 프레임워크란?

- 리스트, 스택, 큐, 트리 등의 자료구조에 정렬, 탐색 등의 알고리즘을 구조화해 놓은 프레임워크

- 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음

 

컬렉션의 특성에 따라 구분하면 크게 List<E>, Set<E>, Map<K, V>로 나뉩니다.

메모리의 입출력 특성에 따라 기존 컬렉션 기능을 확장/조합한 Stack<E>, Queue<E>도 있습니다.(사진에선 누락)

 


☞ Queue<E> 컬렉션 클래스

- Collection<E>에게서 상속된 인터페이스 (LinkedList<E>가 Queue<E> 인터페이스를 구현)

- LIFO : 선입선출 자료구조를 구현

'Linked'가 붙은 컬렉션은 입력 순서 정보를 저장하므로 입력 순서와 출력 순서가 동일합니다.

이러한 점이 Queue<E>의 특징입니다.

 

Queue<E> 주요 메소드

구분   리턴타입 메소드명 기능
예외 처리 기능
미포함 메소드
데이터 추가 boolean add(E item) 매개변수의 item을 Queue에 추가
데이터 확인 E element() 가장 상위에 있는 원솟값 리턴
(데이터는 변화 없음, 데이터가 하나도 없을 때 NoSuchElementException 발생)
데이터 추출 E remove() 가장 상위에 있는 원솟값 꺼내기
(꺼낼 데이터가 없을 때 NoSuchElementException 발생)
예외 처리 기능
포함 메소드
데이터 추가 boolean offer(E item) 매개변수의 item을 Queue에 추가
데이터 확인 E peek() 가장 상위에 있는 원솟값 리턴
(데이터는 변화 없음, 데이터가 하나도 없을 때 null을 리턴)
데이터 추출 E poll() 가장 상위에 있는 원솟값 꺼내기
(꺼낼 데이터 없을 때 null을 리턴)

데이터가 없을 때 예외를 발생 시키는 지, 기본 값으로 대체하는 지에 대한 차이가 있습니다.

예외가 발생되어 프로그램이 비정상 종료 되는 것보다 기본 값으로 대체하는 것이 안전하므로 웬만해선 기본 값으로 대체하는 메소드들을 이용하겠습니다.

 

Queue<E> 인터페이스의 객체 생성

Queue<제네릭 타입 지정> 참조변수 = new LinkedList<제네릭 타입 지정>();

Queue<String> queue = new LinkedList<>();	//우항 제네릭타입 지정 생략 가능

 

메소드 사용해보기

데이터 추가

//데이터 추가
queue.offer("홍길동 외 1명");
queue.offer("신사임당 외 2명");
queue.offer("세종대왕");

 

데이터 확인

//데이터 확인
System.out.println(queue.peek());

@콘솔출력값
홍길동 외 1명

가장 상위에 있는 원솟값을 꺼내 확인만 하는 것이기 때문에 실제 데이터에는 변화가 없습니다.

데이터가 없을 때는 null을 반환

 

데이터 추출

//데이터 추출
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());

@콘솔출력값
홍길동 외 1명
신사임당 외 2명
세종대왕