From 07a78f44b6b4f5c17bb5822163b8a65c1ec8cfa4 Mon Sep 17 00:00:00 2001 From: duandazhi Date: Sat, 20 Aug 2022 18:26:40 +0800 Subject: [PATCH] =?UTF-8?q?CompareUtilTest=20=E6=B7=BB=E5=8A=A0=20comparin?= =?UTF-8?q?gIndexed=20=E7=9A=84=E6=B5=8B=E8=AF=95=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/comparator/CompareUtilTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/hutool-core/src/test/java/cn/hutool/core/comparator/CompareUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/comparator/CompareUtilTest.java index 1a490c0f8..7956a3559 100644 --- a/hutool-core/src/test/java/cn/hutool/core/comparator/CompareUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/comparator/CompareUtilTest.java @@ -32,4 +32,29 @@ public class CompareUtilTest { list.sort(CompareUtil.comparingPinyin(e -> e, true)); Assert.assertEquals(list, descendingOrderResult); } + + @Test + public void comparingIndexedTest() { + List data = ListUtil.of("1", "2", "3", "4", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"); + List index = ListUtil.view("2", "1", "3", "4"); + + //错误,排序压根没有生效... + data.sort(CompareUtil.comparingIndexed(e -> e, index)); + System.out.println(data); + //[1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + Assert.assertEquals(data, ListUtil.view("1", "2", "3", "4", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")); + + //正确排序,index.toArray() + data.sort(CompareUtil.comparingIndexed(e -> e, index.toArray())); + System.out.println(data); + //[5, 6, 7, 8, 9, 10, 2, 2, 1, 1, 3, 3, 4, 4] + Assert.assertEquals(data, ListUtil.view("5", "6", "7", "8", "9", "10", "2", "2", "1", "1", "3", "3", "4", "4")); + + //正确排序,array + String[] indexArray = new String[] {"2", "1", "3", "4"}; + data.sort(CompareUtil.comparingIndexed(e -> e, indexArray)); + System.out.println(data); + //[5, 6, 7, 8, 9, 10, 2, 2, 1, 1, 3, 3, 4, 4] + Assert.assertEquals(data, ListUtil.view("5", "6", "7", "8", "9", "10", "2", "2", "1", "1", "3", "3", "4", "4")); + } }