From 34313ee01f28fd29839cf65da333615df05173a2 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Thu, 3 Aug 2023 15:17:34 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90rule=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=92=E5=BA=8F=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roses/kernel/rule/util/SortUtils.java | 44 +++++++++++++++++++ .../kernel/rule/util/sort/GetSortKey.java | 19 ++++++++ 2 files changed, 63 insertions(+) create mode 100644 kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java create mode 100644 kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java new file mode 100644 index 000000000..8ed129c94 --- /dev/null +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java @@ -0,0 +1,44 @@ +package cn.stylefeng.roses.kernel.rule.util; + +import cn.hutool.core.util.ObjectUtil; +import cn.stylefeng.roses.kernel.rule.util.sort.GetSortKey; + +import java.util.LinkedList; +import java.util.List; + +/** + * 排序工具类 + *

+ * 一般用来弥补数据库排序功能不足的情况 + * + * @author fengshuonan + * @since 2023/8/3 14:43 + */ +public class SortUtils { + + /** + * 对list进行排序,以keys数组传的顺序为准 + * + * @author fengshuonan + * @since 2023/8/3 14:44 + */ + public static List sortListByObjectKey(List originList, List keys) { + + if (ObjectUtil.isEmpty(originList) || ObjectUtil.isEmpty(keys)) { + return originList; + } + + List newSortList = new LinkedList<>(); + for (Object key : keys) { + for (T listItem : originList) { + Object sortKey = listItem.getSortKey(); + if (ObjectUtil.equal(key, sortKey)) { + newSortList.add(listItem); + } + } + } + + return newSortList; + } + +} diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java new file mode 100644 index 000000000..d1e3621a9 --- /dev/null +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java @@ -0,0 +1,19 @@ +package cn.stylefeng.roses.kernel.rule.util.sort; + +/** + * 获取排序的key + * + * @author fengshuonan + * @since 2023/8/3 14:42 + */ +public interface GetSortKey { + + /** + * 获取对象中被排序的Key + * + * @author fengshuonan + * @since 2023/8/3 14:42 + */ + Object getSortKey(); + +}