首页 > 解决方案 > 在 Java 中将 PriorityQueue 强制转换为 ArrayList(最佳方式??)

问题描述

我一直在研究将 ArrayList 移动到 PriorityQueue 的最佳方法,我发现最好的方法是使用方法 pq.addAll(dataArrayList)。但是我现在遇到的问题是如何将这个 PriorityQueue,pq,已经排序到同一个先前的 DataArrayList。

我能想到的唯一方法是一个贯穿队列的结构,如果队列不为空,它会提取并添加到 dataArrayList 中。

public void sort2(Comparator<Router> comp){
    PriorityQueue<Router> pq = new PriorityQueue<Router>(comp);
    pq.addAll(datos);
    datos.clear();
    while(!pq.isEmpty()) {
        datos.add(pq.poll());
    }

}

Router是一个String的ArrayList(它实际上是一个有ip地址,城市,标识符的类,但是为了我们更好的理解,我们把它当作一个String),例如["a","c","b" ] 并按 LessOrder 排序 --> ["a","b","c"]。

它有效,但它是实现这一点的最佳方式吗?谢谢。

标签: java

解决方案


推荐阅读