这是用第二个字符排序单词的排序方法,它是dosnt work( 任何人都可以说如何解决它?
out = new StringTokenizer(input.toString());
n = out.countTokens();
List<String> wordList = new ArrayList<String>(n);
for (int i = 0; i < n; i++) {
wordList.add(out.nextToken());
}
Collections.sort(wordList, new Comparator<String>() {
public int compare(String o1, String o2) {
return compare(o1.substring(1, 2).compareTo(o2.substring(1, 2)));
}
});
答案 0 :(得分:0)
尝试使用:
Collections.sort(wordList, new Comparator<String>() {
public int compare(String o1, String o2) {
return o1.substring(1, 2).compareTo(o2.substring(1, 2));
}
而不是:
Collections.sort(wordList, new Comparator<String>() {
public int compare(String o1, String o2) {
return compare(o1.substring(1, 2).compareTo(o2.substring(1, 2)));
}
前者工作的原因是Comparator类的compare函数从Collection中获取对象,并期望其中的操作产生0来表示相等,第一个参数为“更大”时为1,第二个参数为“时”为-1更大”。因此,在函数中,您抽象地定义了使一个对象大于/等于/小于另一个对象的原因。
干杯。