【发布时间】:2014-08-18 18:26:13
【问题描述】:
我正在尝试对 List<String> 的项目进行排序。这是未排序的List,以及它当前的排序方式:
Unsorted: [Pineapple, pineapple, apple, apricot, Banana, mango, Mango, melon, peach]
Sorted: [apple, apricot, Banana, mango, Mango, melon, peach, Pineapple, pineapple]
Mango怎么没有放在mango前面,为什么Pineapple放在pineapple前面?
这是我的代码:
import java.util.*;
import java.lang.*;
import java.io.*;
class Test {
public static void main (String[] args) throws java.lang.Exception {
List<String> fruits = new ArrayList<String>(7);
fruits.add("Pineapple");
fruits.add("pineapple");
fruits.add("apple");
fruits.add("apricot");
fruits.add("Banana");
fruits.add("mango");
fruits.add("Mango");
fruits.add("melon");
fruits.add("peach");
System.out.println("Unsorted: " + fruits);
Collections.sort(fruits, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareToIgnoreCase(o2);
}
});
System.out.println("Sorted: " + fruits);
}
}
【问题讨论】:
-
因为您使用的是忽略大小写的比较。
-
我已回滚到修订版 1,因为修订版 2 将意外输出显示为所需的结果。
-
@admdrew:请您停止以明显改变其含义的方式编辑问题(并使已经令人困惑的情况变得更糟)。
-
@NPE 抱歉,我最初的编辑确实是错误的。我更改了措辞以反映实际输出与预期输出。
标签: java sorting alphabetical