我有一个方法getPriority()返回对象的名称(也是一个字符串)的方法getName()返回对象的列表中的对象的列表。我有一个“优先级”列表,其中包含“高”“中”和“低”等字符串。根据单独的列表排序列表
我想通过getPriority()方法在顺序列表中的位置排序对象列表,并且对于具有相同优先级或无优先级的对象,然后根据名称按字母顺序排列它们。
例如:
List<MyObject> objects = new ArrayList<MyObject>();
objects.add(new MyObject("apple", "low"));
objects.add(new MyObject("bacon", "medium"));
objects.add(new MyObject("cheese", "low"));
objects.add(new MyObject("doughnut", "high"));
objects.add(new MyObject("eggs", null));
objects.add(new MyObject("fudge", null));
List<String> priority = new ArrayList<String>();
priority.add("high");
priority.add("medium");
priority.add("low");
将被分类为:甜甜圈,培根,苹果,奶酪,鸡蛋,奶油软糖。
重要的是不要使用枚举优先级,因为它需要由最终用户定制。它还需要接受空优先级,因为优先级取自数据库,并且如果数据库中未找到对象,仍然需要对其进行排序。
这又是一个很好的选择。我相信你可以在你的buildPriorityOrdering方法中使用'.nullsLast()'最后对空值进行排序。 – Barett
我会检查出来并更新。 – Jeff
@Barett错字现在修复 – Jeff