반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 케네스
- 사이드프로젝트
- Java 스터디
- 미국유학생
- 자바 스터디
- 2+2
- i-20
- java
- 미국유학생활
- 개인 프로젝트 개발일지
- 미국유학
- 만다라트프로젝트
- Kenneth Park
- 유학생대학생활
- 비전공자 git
- CSUS
- 파이데이아창의인재학과
- 자바
- F1학생비자
- 미국대학생활
- 케네스로그
- 해외유학
- 복수학위제도
- 유학생 준비물
- 미국대학
- 개발일지
- JVM아키텍처
- 부산외대
- California State University Sacramento
- jpa
Archives
- Today
- Total
케네스로그
[자료구조/Java] Queue (Java구현, 관련 메소드) 본문
반응형
Queue 큐
Queue(큐)는 순서를 따르는 자료구조를 말합니다.
이 자료구조에서는 앞(front)과 뒤(back)가 존재하며, 먼저 들어온 데이터가 먼저 빠져 나가는 선입선출(First-in-First-out)의 규칙을 따릅니다.
은행에서 사람들이 줄을 서서 대기하다가 먼저 온 순서대로 업무를 보는 것과 같습니다. 먼저 온 사람이 먼저 서비스를 받는 것(FIFO)이죠.
자바 메소드
Queue는 인터페이스이며, 이를 구현한 클래스는 LinkedListd입니다. 따라서, Queue를 사용하기 위해 LinkedList 객체를 Queue인터페이스 타입으로 변환합니다.
Queue<E> queue = new LinkedList<E>();
Queue<String> q_str = new LinkedList<String>();
q_str.offer("H"); // enqueue
q_str.add("O");
q_str.add("L");
q_str.add("A");
q_str.peek(); // get most front element
q_str.poll(); // dequeue
q_str.remove("L");
메소드 | 리턴 타입 | 설명 |
offer(E e) | boolean | 주어진 객체 삽입(enqueue). 성공 시 true, 실패 시 false 반환. |
add(E e) | boolean Exception |
주어진 객체 삽입(enqueue). 성공 시 true, 실패 시 Exception. |
peek() | E null |
head에 위치한 객체 리턴. 큐가 비었다면 null 반환 |
element() | E Exception |
큐의 head 리턴. 큐가 비었다면 Exception |
poll() | E Exception |
front에 위치한 객체 리턴 후 제거(dequeue). 큐가 비었다면 null 반환 |
remove(E e) | E null |
특정 객체 E 제거 큐가 비었다면 null |
Queue 구현
public class MyStack<T> {
private ArrayList<T> queue = new ArrayList<>();
public boolean enqueue(T item) {
this.queue.add(item);
return true;
}
public T dequeue() {
if(this.queue.isEmpty()) {
return null;
} else {
return this.queue.remove(this.queue.size()-1);
}
}
}
구현 코드는 개인 깃허브(이곳)에서 확인할 수 있습니다.
반응형
'Dev > 자료구조' 카테고리의 다른 글
[자료구조/Java] Hash 해시 (0) | 2022.01.21 |
---|---|
[자료구조/Java] LinkedList - 조회/추가/삭제 코드구현 (0) | 2022.01.21 |
[자료구조/Java] Stack (Java구현, 관련 메소드) (0) | 2022.01.02 |
[자료구조/Java] ArrayList (0) | 2021.12.27 |
[자료구조] 배열, 다차원배열 (1) | 2021.12.26 |