diff --git a/hutool-core/src/main/java/cn/hutool/core/map/ForestMap.java b/hutool-core/src/main/java/cn/hutool/core/map/ForestMap.java index fd0951f8d..6af809b94 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/ForestMap.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/ForestMap.java @@ -275,6 +275,18 @@ public interface ForestMap extends Map> { .orElse(false); } + /** + * 获取指定节点的值 + * + * @param key 节点的key + * @return 节点值,若节点不存在,或节点值为null都将返回null + */ + default V getNodeValue(K key) { + return Opt.ofNullable(get(key)) + .map(TreeEntry::getValue) + .get(); + } + // ===================== 子节点相关方法 ===================== /** diff --git a/hutool-core/src/test/java/cn/hutool/core/map/LinkedForestMapTest.java b/hutool-core/src/test/java/cn/hutool/core/map/LinkedForestMapTest.java index 08ca22047..40adea923 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/LinkedForestMapTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/LinkedForestMapTest.java @@ -142,6 +142,14 @@ public class LinkedForestMapTest { Assert.assertFalse(c.hasChildren()); } + @Test + public void getNodeValueTest() { + final ForestMap map = new LinkedForestMap<>(false); + map.putNode("a", "aaa"); + Assert.assertEquals("aaa", map.getNodeValue("a")); + Assert.assertNull(map.getNodeValue("b")); + } + @Test public void putAllNodeTest() { final ForestMap> map = new LinkedForestMap<>(false);