问题 Java列表,在我添加元素时自动对元素进行排序[重复]


可能重复:
在java中排序的集合 

我想知道Java中是否有一个内置类可以让我添加自动排序的元素。如果两个元素的排名相同,则排序应保留添加顺序。我认为这将像一个优先级队列,但不应该“弹出”元素,我希望他们留在列表中。

显然我可以自己实现这个,但我宁愿使用Java语言实现的东西(更少的bug测试/对未来的项目也很好,而不是导入我自己的代码)。

如果在语言中没有这样的东西,我也会对第三方来源感兴趣。


5014
2017-08-17 18:57


起源

可能重复 在java中排序的集合 也可以看看 stackoverflow.com/questions/2661065/a-good-sorted-list-for-java - Matt Ball
Java“maps”是自动排序的,并且具有极快的查找速度。当然,你可以有一个地图队列。更复杂的方法可能是使用TreeMap;一种更简单的方法可能是在vanilla ArrayList上调用.sort()。频谱中的任何地方都有很多可能性...... - paulsm4
@ paulsm4: Map 平时 不 用Java排序, SortedMap 实现是。 - merryprankster
@ paulsm4 Java Map 不要求实现排序(例如 HashMap)。 - Steve Kuo


答案:


它似乎 SortedList  这会奏效

此类实现排序列表。它由比较器构成,可以比较两个对象并相应地对对象进行排序。将对象添加到列表时,它将插入到正确的位置。根据比较器相等的对象将按照它们添加到此列表的顺序位于列表中。仅添加比较器可以比较的对象。


12
2017-08-17 19:00