안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
컬렉션이란?
- 동일한 타입을 묶어 관리하는 자료 구조
컬렉션 프레임워크란?
- 리스트, 스택, 큐, 트리 등의 자료구조에 정렬, 탐색 등의 알고리즘을 구조화해 놓은 프레임워크
- 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음
컬렉션의 특성에 따라 구분하면 크게 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명
세종대왕
'Java > Java' 카테고리의 다른 글
컬렉션/Set<E>) LinkedHashSet<E>, 주요 메소드 (0) | 2022.03.31 |
---|---|
컬렉션/Set<E>) HashSet<E>, 주요 메소드, 중복 제거 (0) | 2022.03.31 |
컬렉션/List<E>) Stack<E>, 주요 메소드 (0) | 2022.03.31 |
컬렉션/List<E>) LinkedList<E>, 주요 메소드 (0) | 2022.03.31 |
컬렉션/List<E>) Vector<E>, 주요 메소드 (0) | 2022.03.31 |