我正在考虑如何使用两个参数对 ArrayList 进行排序。首先按字符串中某些字符的出现,然后按自然顺序。这是代码:
ArrayList<String> words;
words=getWords(sentence);//return all words from sentence
words.sort(Comparator.comparing(o -> countChar(c, o))
.thenComparing(Comparator::naturalOrder));
方法getWords(sentence)
返回ArrayList<String>
来自 sentence
的单词.
方法countChar(c,o)
计算字符数 c
在word中o
.
添加.thenComparing(Comparator::naturalOrder))
时IDE 显示 o
应转换为 String
并且它无法解析方法 thenComparing()
.
可能是什么问题?
最佳答案
您的代码中有两个错误。
- 您需要提供通用参数来
比较
naturalOrder
返回一个比较器;调用它,而不是传递引用
尝试:
words.sort(Comparator.<String, Integer>comparing(o -> countChar(c, o))
.thenComparing(Comparator.naturalOrder()));
关于java - 按多个参数对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61815342/