java - 自定义 Java 按名称排序

标签 java sorting collections compare compareto

我想对这样的内容进行排序:

给定一个名为 Strings 的对象的 ArrayList,我正在尝试编写 compareTo 函数,以便 Special T 始终位于第一个,Special R > 始终是第二个,Special C 始终是第三个,然后其他所有内容都只是按字母顺序排列:

Special T
Special R
Special C
Aaron
Alan
Bob
Dave
Ron
Tom

是否有一种标准方法可以编写这种比较函数,而无需迭代特殊情况之间的所有可能组合,然后调用return getName().compareTo(otherObject).getName()); 如果是非特殊情况?

最佳答案

我会将特殊情况放在 HashMap<String, Integer> 中以名称作为键,位置作为值。优点是:

  1. 搜索的数量级为 O(1)
  2. HashMap 可以从外部源填充

关于java - 自定义 Java 按名称排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45005448/

相关文章:

java - 如何流式传输和映射一对多关系?

C#:存储非常相似的字符串项以高效序列化到文件的最佳集合类是什么

java - PNG 编码器 - 添加自己的过滤器实现

java - 如何在不创建 *.JcoDestination 文件的情况下使用 JCo 连接

java - Elasticsearch排序字段包含特殊字符数字和字母

python - 查找字符串列表中的差异

java - 集体更改集合对象值

java - 加载后 Java 字节码注入(inject)

java - 如何更新 android textview 的文本

java - Stream sorted() 导致意外结果