当前位置: 首页 > 知识库问答 >
问题:

基于字符串java排序

姬朗
2023-03-14

我有一个对象的列表,需要根据字符串进行排序。

列表中的每个对象都包含以下内容

e.g.
fruitType = Pear
fruitType = Mango
fruitType = Apple
fruitType = Apple
fruitType = Mango

现在,假设我想先按“Apple”下单,然后按“Mango”下单。所以苹果排名第一,芒果紧随其后。

我可以做一个普通的asc/desc排序,但这是不够的。也可以使用apache公共资源来做上面的排序?

共有2个答案

齐兴运
2023-03-14

如果你想按照预定义的顺序排序(也就是说,你已经有了一些固定的字符串顺序),那么你可以这样做:

  1. 设置一个HashMap

换句话说,比较器使用:

public int compare(String x, String y) {
    return Integer.compare(sortTable.get(x), sortTable.get(y));
}

这将允许您使用集合。对列表中的进行排序,将您创建的比较器传递给它。

请注意,您需要一些策略来处理不在预定义列表中的String,或者保证这种情况永远不会发生。

郑俊材
2023-03-14
public class Fruit implements Comparable<Fruit> {
    private String whatYouWantToSortBy;
    ...
    public int compareTo(Fruit other) {
        return whatYouWantToSortBy.compareTo(other.whatYouWantToSortBy);
    }
}

要排序,请使用集合。排序。或者你可以使用一种自动排序的列表,比如TreeSet。

 类似资料:
  • 所以这个问题已经嘲弄我好几天了。如有任何帮助,不胜感激!我制作了一个LinkedHashMap,它存储字符串每个部分的可能组合,我试图在字符串的ArrayList中获得所有排列,同时维护字符串顺序。例如,如果映射为:A=ab,B=C,则组合为:ab ac abb abc

  • 问题内容: 我有2个数据框,格式如下: 完整的df_search有15,000个项目。df_all有550,000个项目。我正在尝试基于文件字符串中的搜索项目字符串来合并两个数据框。我想要的输出是这样的: 简单的数据框合并不起作用,因为字符串永远不会完全匹配(它始终是子字符串)。我还根据其他关于stackoverflow的问题尝试了以下方法: 这给了我df_all中所有找到的项目的完整列表,但是我

  • 我是 Perl 的新手,但根据我阅读的文档,看起来 Perl 中的 split 函数要求正则表达式模式而不是字符串分隔符作为第一个参数,但我发现使用 之类的东西仍然可以正确拆分字符串。 基于此,我尝试使用可变分隔符(例如。< code>print (split($var,$ string))[0] where < code > $ var = ' ' )并发现它不起作用。我做错了什么? 谢谢! 编

  • 问题内容: 我有默认的字符串比较器(在SortedSet中)有问题。问题是默认比较器不能对包含数字的好的字符串进行排序,即:在集合中,我具有: 自然排序应该与上面类似,但是在集合中我有: 我知道为什么会这样,但是我不知道如何更改它。 问题答案: 尝试使用此比较器,该比较器将删除所有非数字字符,然后将其余字符与数字进行比较: 这是一个测试: 输出: 当数字为小数时(也表示Java 8+样式): 结果

  • 问题内容: String[] letters = {“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “L”}; 为什么是 Fk呀! 输入AL字母之一绝对不会发生? 问题答案: 字符串是对象。所述通过引用,而不是由它们的内部值进行比较的对象。 有两种解决方案: 使用method来比较两个对象的值。 使用代替。这是原始的,因此可以使用。

  • 本文向大家介绍基于python3实现倒叙字符串,包括了基于python3实现倒叙字符串的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了基于python3实现倒叙字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 google测试工程师的一道题: 设计一个函数,使用任意语言,完成以下功能: 一个句子,将句子中的单词全部倒排过来,但单词