반응형
우선순위 큐(Priority Queue)
※ 큐(Queue)는 선입선출(First In First Out)
우선순위 큐(Priority Queue)는 들어온 순서와는 상관 없이 우선순위가 높은 데이터가 먼저 이다.
1. 숫자가 큰 순서(내림차순)
2. 숫자가 동일하면 이름 순(A-Z)
※ 우선순위 큐는 내부적으로 Heap 구조를 이루고 있습니다.
* Comparable 구현
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
PriorityQueue<Person> pq = new PriorityQueue<>();
pq.offer(new Person("banana", 10));
pq.offer(new Person("apple", 10));
pq.offer(new Person("orange", 20));
while(!pq.isEmpty()) {
System.out.println(pq.poll());
}
}
}
class Person implements Comparable<Person> {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person target) {
// 큰 숫자가 먼저 (내림차순)
if (this.age > target.age)
return -1;
else if (this.age < target.age)
return 1;
else {
// A-Z 오름차순
return this.name.compareTo(target.name);
}
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
Reference
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 가비지 컬렉션(Garbage Collection) (0) | 2021.03.02 |
---|---|
[Java] 오버로딩(Overloading) (0) | 2021.02.23 |
[Java] [예제] 비만 지수 구하기 (0) | 2021.02.23 |
[Java] 역컴파일로 기본 생성자 확인해보기 (0) | 2021.02.23 |
[Java] 기본 생성자 & 매개변수 생성자 (1) | 2021.02.23 |
댓글