기타/프로그래밍 분류

JAVA - 컬렉션_큐(Queue)

zelkova 2013. 10. 15. 20:40

 <목차로 돌아가기>


큐는 먼저 들어간 데이터가 먼저 나오는 구조이다. 이러한 구조를 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);

}

}


반응형