From d217e8b9ac3ca0d2defec7be2631bb75ac182187 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Thu, 30 Jan 2025 19:23:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20TreeBuilder=20=E7=9A=84?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/util/TreeBuilder.java | 2 +- .../commons/util/TreeBuilderTests.java | 47 ++++++++++--------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java b/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java index 10e8e7a..824d645 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/test/java/xyz/zhouxy/plusone/commons/util/TreeBuilderTests.java b/src/test/java/xyz/zhouxy/plusone/commons/util/TreeBuilderTests.java index 4249c40..cc7c022 100644 --- a/src/test/java/xyz/zhouxy/plusone/commons/util/TreeBuilderTests.java +++ b/src/test/java/xyz/zhouxy/plusone/commons/util/TreeBuilderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ class TreeBuilderTests { Menu::getMenuCode, menu -> Optional.ofNullable(menu.parentMenuCode), MenuList::addChild, - Menu.orderNumComparator); + Comparator.comparing(Menu::getOrderNum)); @Test void testBuildTreeAndSortedByOrderNum() { @@ -70,31 +70,35 @@ class TreeBuilderTests { List menuTreeSortedByOrderNum = treeBuilder.buildTree(clonedMenus); log.info("menuTreeSortedByOrderNum: {}", new Gson().toJson(menuTreeSortedByOrderNum)); - assertEquals(clonedMenus.stream() + assertEquals( + clonedMenus.stream() .filter(menu -> menu.getParentMenuCode() == null) - .sorted(Menu.orderNumComparator) + .sorted(Comparator.comparing(Menu::getOrderNum)) .collect(Collectors.toList()), - menuTreeSortedByOrderNum); + menuTreeSortedByOrderNum); Map menuMap = new HashMap<>(); for (Menu element : clonedMenus) { menuMap.put(element.getMenuCode(), element); } - assertEquals(Arrays.stream(new Menu[] { B001, B002, B003, B004 }) - .sorted(Menu.orderNumComparator) + assertEquals( + Arrays.stream(new Menu[] { B001, B002, B003, B004 }) + .sorted(Comparator.comparing(Menu::getOrderNum)) .collect(Collectors.toList()), - MenuList.class.cast(menuMap.get("B")).children); + MenuList.class.cast(menuMap.get("B")).children); - assertEquals(Arrays.stream(new Menu[] { C1, C2, C3 }) - .sorted(Menu.orderNumComparator) + assertEquals( + Arrays.stream(new Menu[] { C1, C2, C3 }) + .sorted(Comparator.comparing(Menu::getOrderNum)) .collect(Collectors.toList()), - MenuList.class.cast(menuMap.get("C")).children); + MenuList.class.cast(menuMap.get("C")).children); - assertEquals(Arrays.stream(new Menu[] { C1001, C1002 }) - .sorted(Menu.orderNumComparator) + assertEquals( + Arrays.stream(new Menu[] { C1001, C1002 }) + .sorted(Comparator.comparing(Menu::getOrderNum)) .collect(Collectors.toList()), - MenuList.class.cast(menuMap.get("C1")).children); + MenuList.class.cast(menuMap.get("C1")).children); } @@ -103,16 +107,16 @@ class TreeBuilderTests { List clonedMenus; clonedMenus = menus.stream().map(ObjectUtil::clone).collect(Collectors.toList()); - List menuTreeSortedByMenuCode = treeBuilder.buildTree( - clonedMenus, - (a, b) -> a.getMenuCode().compareTo(b.getMenuCode())); + List menuTreeSortedByMenuCode = treeBuilder + .buildTree(clonedMenus, Comparator.comparing(Menu::getMenuCode)); log.info("menuTreeSortedByMenuCode: {}", new Gson().toJson(menuTreeSortedByMenuCode)); - assertEquals(clonedMenus.stream() + assertEquals( + clonedMenus.stream() .filter(menu -> menu.getParentMenuCode() == null) - .sorted((a, b) -> a.getMenuCode().compareTo(b.getMenuCode())) + .sorted(Comparator.comparing(Menu::getMenuCode)) .collect(Collectors.toList()), - menuTreeSortedByMenuCode); + menuTreeSortedByMenuCode); Map menuMap = new HashMap<>(); for (Menu element : clonedMenus) { @@ -160,9 +164,6 @@ class TreeBuilderTests { return orderNum; } - public static Comparator orderNumComparator = - (a, b) -> Integer.compare(a.getOrderNum(), b.getOrderNum()); - private static final long serialVersionUID = 20240917181424L; }