【发布时间】:2019-07-25 07:21:43
【问题描述】:
我正在尝试根据从 API 收到的排序键和排序顺序对列表进行排序。 例如, 我有一个带有 sortkey 和 sortorder 的列表,我需要根据它进行排序。
List<SortList> sortlist;
我有一个对象列表:
List<Employee> employee;
我可以使用
进行排序Collections.sort(sourceList, Comparator
.comparing(Employee::getAge).reversed()
.thenComparing(Employee::getCount));
但我需要在一个条件下检查 sortfeild,并基于该条件仅考虑对该字段进行排序。
例如:
如果(排序键 = “名称”) 按排序顺序从 sortlist 中 sortbythatkey
if (sortkey = "place") sortbythat key 从 sortlist 按排序顺序
所以这里如果 sortlist 有名称和位置,那么它应该按键和顺序排序
知道我怎么能做到这一点吗?
排序列表包含:
{
"sortKey":"name",
"sortOrder":"ASC"
},
{
"sortKey":"place",
"sortOrder":"DESC"
}
要求是像 SQL 中的 ORDER BY 一样将它们链接在一起
【问题讨论】:
-
如果两个元素有不同的
sortkeys,你需要它如何表现? -
@Marv :实际上排序键和顺序将由外部提供。所以应该根据 sortkeys 和排序顺序链接排序
-
你能举例说明
sortlist可能包含的内容吗? -
@Sweeper 添加......
标签: java java-8 comparator