java - Java 是否有内置的方法可以将元素添加到按字母顺序排列的列表中?

标签 java

Java 5 库中是否已经提供了一种方法来将元素添加到按字母顺序排列的 List 中? ?

换句话说,假设我有一个 List<String>具有三个元素 {"apple","cat","tree"}我想添加 String “香蕉”同时保持 List按字母顺序排列;有没有一种简单的方法可以简单地将它添加到 List ,所以 List现在有四个元素{"apple","banana","cat","tree"}

最佳答案

您可以使用 PriorityQueue .这些是根据它们持有的对象的比较器排序的。 Strings 默认情况下,根据第一个不同字符的 ASCII 值排序,这将给出您想要的结果(只要所有单词的大小写都相同。)

简单示例:

PriorityQueue<String> pq = new PriorityQueue<String>();
pq.add("banana");
pq.add("apple");
pq.add("orange");
pq.poll(); // Returns "apple"
pq.poll(); // Returns "banana"
pq.poll(); // Returns "orange"

请注意 add()poll() 的 Big-O 运行时都是 O(logn)

编辑:PriorityQueue 是最好的,如果你想按顺序删除项目,但你需要 TreeSet按顺序迭代集合。

关于java - Java 是否有内置的方法可以将元素添加到按字母顺序排列的列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3206407/

相关文章:

java - JSlider 标签中的工具提示

java - 如何将现有的Java程序转移到Android? (要导入什么)

java - 这里为什么要用clone?

java - 如何在网格中显示值(Struts 2.x)?

java - 当我使用 @Query 时,为方法使用命名参数

java - 停止线程,不扩展类

java - 这个While循环如何退出? (java)

java - 将 null 转换为类型

java - DSE sqoop 无法将 SQL Server 日期导入 Cassandra 表

java - 某些函数文本在 netbeans ide 上显示为横线