java - 在 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"]。
它有效,但它是实现这一点的最佳方式吗?谢谢。
解决方案
推荐阅读
- c - 用 C 而不是 C++ 制作游戏。在 txt 文件中保存、替换和排序分数时需要帮助
- c# - 有没有办法使用 C# 正则表达式获取字符串中字符内的文本?
- c++ - 我可以将一个值放入存储在 C++ 中的映射中的向量中吗?
- python - pip install 在 docker 容器中不起作用
- circuit-sdk - 将机器人添加到电路空间 - “无法添加”
- jenkins - 在声明式管道中,我可以创建一个并行阶段,以任意次数(在任意数量的节点上)运行相同的代码吗?
- zsh - 运行上一个命令更改一个参数
- python - 如何在python中检查excel中的空白单元格?
- android - 保持图片长宽比倒转尺寸Android
- javascript - Qualtrics:为什么当我返回到它所在的页面时 jQuery datepicker 插件没有重新初始化?