我想对这样的内容进行排序:
给定一个名为 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>
中以名称作为键,位置作为值。优点是:
- 搜索的数量级为 O(1)
- HashMap 可以从外部源填充
关于java - 自定义 Java 按名称排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45005448/