我是Java的初学者。请建议可以/应该使用哪些集合来维护Java中的排序列表。我尝试了Map
和Set
,但它们不是我想要的。
这来得很晚,但是JDK中有一个类只是为了获得排序列表。它被命名(与其他Sorted*接口有些混乱)“ java.util.PriorityQueue
”。它可以排序Comparable<?>
或使用Comparator。
与List
sorted using 的区别Collections.sort(...)
在于,通过使用堆数据结构,这将始终保持部分顺序,具有O(log(n))插入性能,而在sorted中的插入ArrayList将为O(n)(即,使用二进制搜索和移动)。
但是,与不支持索引访问()不同的是List
,访问堆中项目的唯一方法是一次将它们取出(因此命名为)。PriorityQueueget(5)PriorityQueue
问题内容: 我有一个Java集合: 现在在显示列表之前有一个字段,我想按此排序此集合。 有什么办法可以做到吗? 问题答案: 使用比较器: 此外,如果实现,则只需使用 使用JDK 8,语法要简单得多。 更简单 最简单的 显然,初始代码也可以用于JDK 8。
主要内容:1 集合元素的排序,2 Collections sort方法,3 字符串正序排序,4 字符串倒序排序,5 包装类型排序,6 自定义对象排序1 集合元素的排序 我们可以对以下元素进行排序: 字符串对象 包装类对象 用户自定义对象 Collections类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型,则可以使用TreeSet。但是,我们无法对List的元素进行排序。Collections类提供用于对List类型元素的元素进行排序的方法。 2 Collections so
下面我使用的代码工作正常,并输出名称,但排序方法不起作用。我需要“Collections.sort(nameFromText);”按名字的字母顺序对ArrayList排序。 我做错了什么?
问题内容: 如果我有一个简单的字符串列表: 我可以对它进行排序: 但是假设我有一个Person类: 并列出: 我想有时按名称,有时按年龄,有时按国家对它进行排序。 最简单的方法是什么? 我知道我可以实现Comparable接口,但这似乎限制了我只能通过一个特定的属性对其进行排序。 问题答案: 可以使用自定义比较器调用Collections.sort。并且该比较器可以实现为允许以不同的排序顺序进行排
本文向大家介绍Java常用工具类—集合排序,包括了Java常用工具类—集合排序的使用技巧和注意事项,需要的朋友参考一下 一、集合排序概述 1、主要内容 集合中的基本数据类型排序 集合中的字符串排序 Comparator接口 Comparable接口 回顾: 2、集合排序方法 使用Collections类的sort(List list)方法 sort(List list)是根据元素的自然顺序对指定列
问题内容: 在我正在使用的代码下面,可以正常工作并输出名称,但不能使用sort方法。我期望“ Collections.sort(nameFromText);” 按名字的字母顺序对ArrayList进行排序。 我究竟做错了什么? 问题答案: 方法期望要排序的列表元素具有可比性。元素类型应该实现接口,或者您应该使用带有通用实例的重载方法。 在下面的代码中,您不满足上述两个条件。您的类既没有实现,也没有