自定义 Java 按名称排序

Custom Java sort by name

我想这样排序:

给定一个名为字符串的对象的 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