gpt4 book ai didi

java - 按多个参数对字符串列表进行排序

转载 作者:行者123 更新时间:2023-12-02 00:33:28 24 4
gpt4 key购买 nike

我正在考虑如何使用两个参数对 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() .

可能是什么问题?

最佳答案

您的代码中有两个错误。

  1. 您需要提供通用参数来比较
  2. naturalOrder 返回一个比较器;调用它,而不是传递引用

尝试:

        words.sort(Comparator.<String, Integer>comparing(o -> countChar(c,  o))
.thenComparing(Comparator.naturalOrder()));

关于java - 按多个参数对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61815342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com