Java 如何修复此排序方法?

Java 如何修复此排序方法?,java,arrays,sorting,Java,Arrays,Sorting,下面是按第二个字符对单词排序的排序方法,它是dosnt工作 有人能说怎么修吗 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.s

下面是按第二个字符对单词排序的排序方法,它是dosnt工作 有人能说怎么修吗

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)));
  }
});
尝试使用以下方法:

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函数从集合中获取对象,并期望其中的操作产生0来表示相等,当第一个参数较大时产生1,当第二个参数较大时产生-1。因此,在函数中,您抽象地定义了一个对象比另一个对象大/相等/小的原因


干杯。

什么是输入不起作用的例子?你应该接受最后一个问题的答案。等级=3时,他/她等到明天才接受答案。不应该是比较1.substring1,2.compareToo2.substring1,2,应该是o1.substring1,2.compareToo2.substring1,2。请接受上一个问题的答案。@antoxa2584-没问题。祝项目的其余部分好运!我认为,如果你能先发制人地解释正在发生的事情,这将对未来的游客非常有帮助。