java创建优先权队列
时间: 2023-12-13 19:29:31 浏览: 38
可以使用Java中的PriorityQueue类来创建优先队列。PriorityQueue是一个基于优先级堆的无界优先队列,它的元素按照自然顺序进行排序或者根据构造函数中提供的Comparator进行排序。以下是一个示例代码:
```
import java.util.PriorityQueue;
public class PriorityQueueExample {
public static void main(String[] args) {
// 创建一个优先队列
PriorityQueue<Integer> pq = new PriorityQueue<>();
// 添加元素到队列中
pq.add(5);
pq.add(1);
pq.add(10);
pq.add(3);
// 输出队列中的元素
while (!pq.isEmpty()) {
System.out.print(pq.poll() + " ");
}
}
}
```
输出结果为:1 3 5 10
相关问题
java 创建优先队列
要在Java中创建优先队列,你可以使用`PriorityQueue`类。`PriorityQueue`是一个基于优先级堆的实现,它根据元素的优先级进行排序。
下面是一个简单的示例代码,演示如何创建和使用优先队列:
```java
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
// 创建一个优先队列,默认按自然顺序排序(最小堆)
PriorityQueue<Integer> pq = new PriorityQueue<>();
// 添加元素到队列
pq.offer(5);
pq.offer(2);
pq.offer(8);
pq.offer(1);
pq.offer(10);
// 输出队列中的元素
while (!pq.isEmpty()) {
System.out.println(pq.poll());
}
}
}
```
输出结果将会是:
```
1
2
5
8
10
```
在上面的示例中,我们创建了一个整数类型的优先队列,并使用`offer()`方法添加元素。然后,我们使用`poll()`方法从队列中取出并删除最小的元素,直到队列为空。
你可以根据需要自定义比较器来实现不同的排序方式。例如,如果你想要按照元素的降序排序,可以创建一个自定义的比较器,并将其传递给优先队列的构造函数。
java创建一个队列
以下是Java创建一个队列的示例代码:
```java
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
// 创建一个队列
Queue<String> queue = new LinkedList<>();
// 添加元素到队列
queue.add("Java");
queue.add("Python");
queue.add("C++");
// 获取队列头部元素并删除
String head = queue.poll();
System.out.println("Head element: " + head);
// 获取队列头部元素但不删除
head = queue.peek();
System.out.println("Head element: " + head);
// 获取队列大小
int size = queue.size();
System.out.println("Queue size: " + size);
}
}
```
输出结果为:
```
Head element: Java
Head element: Python
Queue size: 2
```