自定义Java按名称排序

时间:2017-07-10 06:51:26

标签: 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());如果它是非特殊情况?

1 个答案:

答案 0 :(得分:2)

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

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