如何解决这种排序方法?

时间:2013-04-07 13:50:56

标签: java arrays sorting

这是用第二个字符排序单词的排序方法,它是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)));
  }
});

1 个答案:

答案 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更大”。因此,在函数中,您抽象地定义了使一个对象大于/等于/小于另一个对象的原因。

干杯。