Modifier and Type | Method and Description |
---|---|
void |
clear()
将当前集合清空,并清除全部节点间的引用关系
|
default boolean |
containsChildNode(K parentKey,
K childKey)
判断以该父节点作为根节点的树结构中是否具有指定子节点
|
default boolean |
containsParentNode(K key,
K parentKey)
获取以指定节点作为叶子节点的树结构,然后确认该树结构中当前节点是否存在指定父节点
|
default Collection<TreeEntry<K,V>> |
getChildNodes(K key)
获取指定父节点的全部子节点
比如:若存在 a -> b -> c 的关系,此时输入 b 将返回 c,输入 a 将返回 b,c |
default Collection<TreeEntry<K,V>> |
getDeclaredChildNodes(K key)
获取指定父节点直接关联的子节点
比如:若存在 a -> b -> c 的关系,此时输入 b 将返回 c,输入 a 将返回 b |
default TreeEntry<K,V> |
getDeclaredParentNode(K key)
获取指定节点的直接父节点
比如:若存在 a -> b -> c 的关系,此时输入 a 将返回 null,输入 b 将返回 a,输入 c 将返回 b |
default V |
getNodeValue(K key)
获取指定节点的值
|
default TreeEntry<K,V> |
getParentNode(K key,
K parentKey)
获取以指定节点作为叶子节点的树结构,然后获取该树结构中指定节点的指定父节点
|
default TreeEntry<K,V> |
getRootNode(K key)
获取以指定节点作为叶子节点的树结构,然后获取该树结构的根节点
比如:存在 a -> b -> c 的关系,则输入 a/b/c 都将返回 a |
default Set<TreeEntry<K,V>> |
getTreeNodes(K key)
获取指定节点所在树结构的全部树节点
比如:存在 a -> b -> c 的关系,则输入 a/b/c 都将返回 a, b, c |
default void |
linkNodes(K parentKey,
K childKey)
为集合中的指定的节点建立父子关系
|
void |
linkNodes(K parentKey,
K childKey,
BiConsumer<TreeEntry<K,V>,TreeEntry<K,V>> consumer)
为集合中的指定的节点建立父子关系
|
default TreeEntry<K,V> |
put(K key,
TreeEntry<K,V> node)
添加一个节点,效果等同于
putNode(key, node.getValue())
若key对应节点不存在,则以传入的键值创建一个新的节点;
若key对应节点存在,则将该节点的值替换为node 指定的值;
|
default void |
putAll(Map<? extends K,? extends TreeEntry<K,V>> treeEntryMap)
批量添加节点,若节点具有父节点或者子节点,则一并在当前实例中引入该关系
|
default <C extends Collection<V>> |
putAllNode(C values,
Function<V,K> keyGenerator,
Function<V,K> parentKeyGenerator,
boolean ignoreNullNode)
批量添加节点
|
void |
putLinkedNodes(K parentKey,
K childKey,
V childValue)
添加子节点,并为子节点指定父节点:
若
parentKey 或childKey 对应的节点不存在,则会根据键值创建一个对应的节点;
若parentKey 或childKey 对应的节点存在,则会更新对应节点的值;
|
default void |
putLinkedNodes(K parentKey,
V parentValue,
K childKey,
V childValue)
同时添加父子节点:
若
parentKey 或childKey 对应的节点不存在,则会根据键值创建一个对应的节点;
若parentKey 或childKey 对应的节点存在,则会更新对应节点的值;
该操作等同于:
putNode(parentKey, parentValue);
putNode(childKey, childValue);
linkNodes(parentKey, childKey);
|
TreeEntry<K,V> |
putNode(K key,
V value)
添加一个节点
若key对应节点不存在,则以传入的键值创建一个新的节点;
若key对应节点存在,则将该节点的值替换为
node 指定的值;
|
TreeEntry<K,V> |
remove(Object key)
将指定节点从当前
Map 中删除
若存在父节点或子节点,则将其断开其与父节点或子节点的引用关系;
若同时存在父节点或子节点,则会在删除后将让子节点直接成为父节点的子节点,比如:现有引用关系 a -> b -> c,删除 b 后,将有 a -> c |
void |
unlinkNode(K parentKey,
K childKey)
若
parentKey 或childKey 对应节点都存在,则移除指定该父节点与其直接关联的指定子节点间的引用关系 |
compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, putIfAbsent, remove, replace, replace, replaceAll, size, values
default TreeEntry<K,V> put(K key, TreeEntry<K,V> node)
putNode(key, node.getValue())
node
指定的值;default void putAll(Map<? extends K,? extends TreeEntry<K,V>> treeEntryMap)
TreeEntry<K,V> remove(Object key)
Map
中删除
default <C extends Collection<V>> void putAllNode(C values, Function<V,K> keyGenerator, Function<V,K> parentKeyGenerator, boolean ignoreNullNode)
C
- 集合类型values
- 要添加的值keyGenerator
- 从值中获取key的方法parentKeyGenerator
- 从值中获取父节点key的方法ignoreNullNode
- 是否获取到的key为null的子节点/父节点TreeEntry<K,V> putNode(K key, V value)
node
指定的值;key
- 节点的keyvalue
- 节点的valuedefault void putLinkedNodes(K parentKey, V parentValue, K childKey, V childValue)
parentKey
或childKey
对应的节点不存在,则会根据键值创建一个对应的节点;parentKey
或childKey
对应的节点存在,则会更新对应节点的值;
putNode(parentKey, parentValue);
putNode(childKey, childValue);
linkNodes(parentKey, childKey);
parentKey
- 父节点的keyparentValue
- 父节点的valuechildKey
- 子节点的keychildValue
- 子节点的值void putLinkedNodes(K parentKey, K childKey, V childValue)
parentKey
或childKey
对应的节点不存在,则会根据键值创建一个对应的节点;parentKey
或childKey
对应的节点存在,则会更新对应节点的值;parentKey
- 父节点的keychildKey
- 子节点的keychildValue
- 子节点的值default void linkNodes(K parentKey, K childKey)
parentKey
- 父节点的keychildKey
- 子节点的keyvoid linkNodes(K parentKey, K childKey, BiConsumer<TreeEntry<K,V>,TreeEntry<K,V>> consumer)
parentKey
- 父节点的keychildKey
- 子节点的keyconsumer
- 对父节点和子节点的操作,允许为nullvoid unlinkNode(K parentKey, K childKey)
parentKey
或childKey
对应节点都存在,则移除指定该父节点与其直接关联的指定子节点间的引用关系parentKey
- 父节点的keychildKey
- 子节点default Set<TreeEntry<K,V>> getTreeNodes(K key)
key
- 指定节点的keydefault TreeEntry<K,V> getRootNode(K key)
key
- 指定节点的keydefault TreeEntry<K,V> getDeclaredParentNode(K key)
key
- 指定节点的keydefault TreeEntry<K,V> getParentNode(K key, K parentKey)
key
- 指定节点的keyparentKey
- 指定父节点keydefault boolean containsParentNode(K key, K parentKey)
key
- 指定节点的keyparentKey
- 指定父节点的keydefault V getNodeValue(K key)
key
- 节点的keydefault boolean containsChildNode(K parentKey, K childKey)
parentKey
- 父节点childKey
- 子节点default Collection<TreeEntry<K,V>> getDeclaredChildNodes(K key)
key
- keydefault Collection<TreeEntry<K,V>> getChildNodes(K key)
key
- keyCopyright © 2024. All rights reserved.