큐는 먼저 들어간 데이터가 먼저 나오는 구조이다. 이러한 구조를 FIFO(First In First Out)구조라고 한다.
1. 일반적으로 먼저 들어간 데이터가 먼저 나오는 구조이다.
2. 우선순위에 따라 요소 순서가 정해질 수 있다.
3. 요소(element)는 중복될 수 있다.
큐 구현 클래스
priorityQueue |
priorityBlockingQueue |
LinkedList |
→ PIPO(Prioroty-in, Prioroty - Out) → 정렬된 순서에 의해 반복 → null 요소를 허용하지 않음 |
→ Priority Queue의 동기화된 버전 → 동기화 메소드 보유 → PriorityQueue보다 느린 속도 → null 요소를 허용하지 않음 |
→ 끝에 요소추가 용이 → List인터페이스 구현 → 요소에 null허용 |
큐 인터페이스의 메소드
boolean |
offer(E o) 지정된 요소를 큐에 추가한다. |
E |
element() 큐의 head의 요소를 반환(삭제는 하지 않음) 큐가 비어 있으면 예외 발생 |
E |
peek() 큐의 head의 요를 반환 큐가 비어 있으면 null 반환 |
E |
poll() 큐의 head의 요소를 반환 큐가 비어 있으면 null 반환 |
E |
remove() 큐의 head의 요소를 반환(삭제함) 큐가 비어 있으면 예외 발생 |
LinkedList 클래스
import java.util.LinkedList;
import java.util.Queue;
public class Test{
public static void main(String[] args){
Queue<String> queue = new LinkedList<String>();
queue.add("JAVA");
queue.add("SCRIPT");
queue.add("JSP");
while(!queue.isEmpty()){
system.out.println(queue.remove());
}
}
}
PriorityQueue클래스
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Queue;
public class Test{
public static void main(String[] args) {
Queue<String>queue = new PriorityQueue<String>(10, new mycmp());
queue.add("JAVA");
queue.add("SCRIPT");
queue.add("JSP");
while(!queue.isEmpty()){
System.out.println(queue.remove());
}
}
}
class mycmp implements Comparator<String>{
public int compare(String s1, String s2){
return s2.compareTo(s1);
}
}
'기타 > 프로그래밍 분류' 카테고리의 다른 글
JAVA - Comparable,Comparator, Utilities, Arrays (0) | 2013.10.15 |
---|---|
JAVA - 컬렉션_맵(MAP) (0) | 2013.10.15 |
JAVA - 컬렉션_리스트(List) (0) | 2013.10.15 |
JAVA - 컬렉션_집합(set) (0) | 2013.10.15 |
JAVA - 패턴 매칭(Pattern Matching) (0) | 2013.10.13 |