Package org.aoju.bus.core.map
Interface ForestMap<K,V>
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptiondefault booleancontainsChildNode(K parentKey, K childKey) 判断以该父节点作为根节点的树结构中是否具有指定子节点default booleancontainsParentNode(K key, K parentKey) 获取以指定节点作为叶子节点的树结构,然后确认该树结构中当前节点是否存在指定父节点default Collection<TreeEntry<K, V>> getChildNodes(K key) 获取指定父节点的全部子节点 比如:若存在 a -> b -> c 的关系,此时输入 b 将返回 c,输入 a 将返回 b,cdefault Collection<TreeEntry<K, V>> getDeclaredChildNodes(K key) 获取指定父节点直接关联的子节点 比如:若存在 a -> b -> c 的关系,此时输入 b 将返回 c,输入 a 将返回 bgetDeclaredParentNode(K key) 获取指定节点的直接父节点 比如:若存在 a -> b -> c 的关系,此时输入 a 将返回 null,输入 b 将返回 a,输入 c 将返回 bdefault VgetNodeValue(K key) 获取指定节点的值getParentNode(K key, K parentKey) 获取以指定节点作为叶子节点的树结构,然后获取该树结构中指定节点的指定父节点getRootNode(K key) 获取以指定节点作为叶子节点的树结构,然后获取该树结构的根节点 比如:存在 a -> b -> c 的关系,则输入 a/b/c 都将返回 agetTreeNodes(K key) 获取指定节点所在树结构的全部树节点 比如:存在 a -> b -> c 的关系,则输入 a/b/c 都将返回 a, b, cdefault void为集合中的指定的节点建立父子关系void为集合中的指定的节点建立父子关系添加一个节点,效果等同于putNode(key, node.getValue())若key对应节点不存在,则以传入的键值创建一个新的节点; 若key对应节点存在,则将该节点的值替换为node指定的值;default void批量添加节点,若节点具有父节点或者子节点,则一并在当前实例中引入该关系default <C extends Collection<V>>
voidputAllNode(C values, Function<V, K> keyGenerator, Function<V, K> parentKeyGenerator, boolean ignoreNullNode) 批量添加节点voidputLinkedNodes(K parentKey, K childKey, V childValue) 添加子节点,并为子节点指定父节点: 若parentKey或childKey对应的节点不存在,则会根据键值创建一个对应的节点; 若parentKey或childKey对应的节点存在,则会更新对应节点的值;default voidputLinkedNodes(K parentKey, V parentValue, K childKey, V childValue) 同时添加父子节点: 若parentKey或childKey对应的节点不存在,则会根据键值创建一个对应的节点; 若parentKey或childKey对应的节点存在,则会更新对应节点的值; 该操作等同于:添加一个节点 若key对应节点不存在,则以传入的键值创建一个新的节点; 若key对应节点存在,则将该节点的值替换为node指定的值;voidunlinkNode(K parentKey, K childKey) 若parentKey或childKey对应节点都存在,则移除指定该父节点与其直接关联的指定子节点间的引用关系Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
-
Method Details
-
put
-
putAll
-
putAllNode
default <C extends Collection<V>> void putAllNode(C values, Function<V, K> keyGenerator, Function<V, K> parentKeyGenerator, boolean ignoreNullNode) 批量添加节点- Type Parameters:
C- 集合类型- Parameters:
values- 要添加的值keyGenerator- 从值中获取key的方法parentKeyGenerator- 从值中获取父节点key的方法ignoreNullNode- 是否获取到的key为null的子节点/父节点
-
putNode
-
putLinkedNodes
同时添加父子节点:- 若
parentKey或childKey对应的节点不存在,则会根据键值创建一个对应的节点; - 若
parentKey或childKey对应的节点存在,则会更新对应节点的值;
putNode(parentKey, parentValue); putNode(childKey, childValue); linkNodes(parentKey, childKey);- Parameters:
parentKey- 父节点的keyparentValue- 父节点的valuechildKey- 子节点的keychildValue- 子节点的值
- 若
-
putLinkedNodes
-
linkNodes
-
linkNodes
-
unlinkNode
-
getTreeNodes
-
getRootNode
-
getDeclaredParentNode
-
getParentNode
-
containsParentNode
-
getNodeValue
-
containsChildNode
-
getDeclaredChildNodes
获取指定父节点直接关联的子节点 比如:若存在 a -> b -> c 的关系,此时输入 b 将返回 c,输入 a 将返回 b- Parameters:
key- key- Returns:
- 节点
-
getChildNodes
获取指定父节点的全部子节点 比如:若存在 a -> b -> c 的关系,此时输入 b 将返回 c,输入 a 将返回 b,c- Parameters:
key- key- Returns:
- 该节点的全部子节点
-