当前位置: 首页 > 面试题库 >

队列自然不排序

狄卓君
2023-03-14
问题内容

请查看下面的代码:

public static void main(String[] args) {
    Queue<String> q = new PriorityQueue<String>();
    q.offer("car");
    q.offer("airplane");
    q.offer("bicycle");
    Iterator<String> i = q.iterator();
    while(i.hasNext())
        System.out.print(i.next() + " ");
}

有人可以解释一下为什么输出是

airplane car bicycle

代替

airplane bicycle car

因为在API中它表示优先级队列的元素是根据其自然顺序进行排序的。


问题答案:

PriorityQueue基于优先级堆。尽管未对元素进行排序,但此数据结构允许非常快地检索最小元素。将元素添加到PriorityQueue的速度比向基于树的TreeSet快。由于未对元素进行排序,因此如API所述,迭代器“不会以任何特定顺序返回元素”。



 类似资料:
  • 问题内容: 我有一些文件需要按名称排序,但是不幸的是,我无法使用常规排序,因为我也想对字符串中的数字进行排序,因此我进行了一些研究,发现所寻找的东西叫做。 我尝试了此处给出的解决方案,并且效果很好。 但是,对于诸如和这样的字符串,该字符串会导致特定的自然键算法失败,因为它仅与第一个整数匹配,在这种情况下,该整数将是和,因此它放弃了排序。因此,我认为可能会帮助匹配字符串中的所有数字并将它们分组在一起

  • 问题内容: 我有一个熊猫DataFrame,它的索引要自然排序。Natsort似乎不起作用。在构建DataFrame之前对索引进行排序似乎无济于事,因为我对DataFrame所做的操作似乎使过程中的排序变得混乱。关于如何自然使用索引的任何想法? 问题答案: 如果要对df进行排序,只需对索引或数据进行排序,然后直接将其分配给df的索引,而不是尝试将df作为arg传递,因为这会产生一个空列表: 请注意

  • 问题内容: 有没有一种优雅的方法可以在MySQL数据库中进行高性能的自然排序? 例如,如果我有此数据集: 最终幻想 最终幻想4 最终幻想10 最终幻想12 最终幻想12:爱情之链 最终幻想冒险 最终幻想起源 最终幻想战术 除了将游戏名称拆分成各个组成部分外,其他任何 优雅的 解决方案 标题 :《最终幻想》 编号 :“ 12” 副标题 :“ Promathia的链条” 确保它们以正确的顺序出现?(1

  • 问题内容: 我已经为此工作了几个月。我只是无法获得(真实的字母数字)结果。令我震惊的是我无法获得自1992年以来的成就。 我正在寻找SQL,VBS或简单的excel或access中的任何解决方案。这是我的数据: 我要查找的顺序是真实的字母数字顺序,如下所示: 库存为7800条记录,因此我在处理能力方面也遇到了一些问题。 任何帮助,将不胜感激。 杰夫 问题答案: 在本机Excel中,您可以添加多个排

  • 我有一个,名为,其中包含类型的对象。 您可以在所有车辆上调用该方法。 我要做的是排序,这样车辆被赋予更高的优先级,并被放在队列的前面。 我假设我必须在这里使用一个比较器,但不知道怎么做。

  • 队列自旋锁 这是本章节的第二部分,这部分描述 Linux 内核的和我们在本章的第一部分所见到的--自旋锁的同步原语。在这个部分我们将继续学习自旋锁的同步原语。 如果阅读了上一部分的相关内容,你可能记得除了正常自旋锁,Linux 内核还提供自旋锁的一种特殊类型 - 队列自旋锁。 在这个部分我们将尝试理解此概念锁代表的含义。 我们在上一部分已知自旋锁的 API: spin_lock_init - 为给