gpt4 book ai didi

Java排序列表,首先按长度然后按字母顺序排列流

转载 作者:行者123 更新时间:2023-12-02 15:51:44 28 4
gpt4 key购买 nike

我已经可以按描述长度排序,但是如果两个 Article 的长度相同,我如何按字母顺序对它们进行排序? (如果两篇文章的描述长度相同,则按字母顺序排序)。

   public List<Article> sortAsc() {
removeNull();
return articles.stream()
.sorted(Comparator.comparingInt(a -> a.getDescription().length()))
.collect(Collectors.toList());
}




public class ComparatorAppController implements Comparator<String> {

/***
* compare each element
* @param o1
* @param o2
* @return
*/
public int compare(String o1, String o2) {
// check length in one direction
if (o1.length() > o2.length()) {
return 1;
}
// check length in the other direction
else if (o1.length() < o2.length()) {
return -1;
}
// if same alphabetical order
return o1.compareTo(o2);
}

在这种情况下如何使用比较器?还是我应该将其更改为其他内容?

最佳答案

您的自定义比较器看起来不错。然而,在 streamssorted 方法中,您使用了另一个比较器。

考虑到自定义比较器与以下代码块在同一类中,这就是您可以插入自定义比较器的方法。

  return articles.stream()
.sorted(this::compare)
.collect(Collectors.toList());

关于Java排序列表,首先按长度然后按字母顺序排列流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72388363/

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