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

Ric*_*ket 3 java

Java 5库中是否已经提供了一个方法来将元素添加到字母中List

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

Jus*_*ini 7

你可以使用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"
Run Code Online (Sandbox Code Playgroud)

需要注意的是两者的大O运行add()poll()O(logn).

编辑:PriorityQueue是最好的,如果你想删除的订单中的商品,但你需要一个TreeSet遍历该集合秩序.


Ara*_*ram 5

有SortedSet和SortedMap.然而,两者都不能支持重复.如果这是您需要的,那么使用Set数据结构.你的返回类型需要是List然后他使用Collections.list(set)将最终的Set转换为List.这里的javadoc http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/util/Collections.html#list(java.util.Enumeration)