Class UniqueKeySet<K,V>

java.lang.Object
java.util.AbstractCollection<V>
java.util.AbstractSet<V>
org.miaixz.bus.core.center.set.UniqueKeySet<K,V>
Type Parameters:
K - 唯一键类型
V - 值对象
All Implemented Interfaces:
Serializable, Iterable<V>, Collection<V>, Set<V>

public class UniqueKeySet<K,V> extends AbstractSet<V> implements Serializable
唯一键的Set 通过自定义唯一键,通过uniqueGenerator生成节点对象对应的键作为Map的key,确定唯一 此Set与HashSet不同的是,HashSet依赖于Object.equals(Object)确定唯一 但是很多时候我们无法对对象进行修改,此时在外部定义一个唯一规则,即可完成去重。
 
 Set<UniqueTestBean> set = new UniqueKeySet<>(UniqueTestBean::getId);
 
 
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • UniqueKeySet

      public UniqueKeySet(Function<V,K> uniqueGenerator)
      构造
      Parameters:
      uniqueGenerator - 唯一键生成规则函数,用于生成对象对应的唯一键
    • UniqueKeySet

      public UniqueKeySet(Function<V,K> uniqueGenerator, Collection<? extends V> c)
      构造
      Parameters:
      uniqueGenerator - 唯一键生成规则函数,用于生成对象对应的唯一键
      c - 初始化加入的集合
    • UniqueKeySet

      public UniqueKeySet(boolean isLinked, Function<V,K> uniqueGenerator)
      构造
      Parameters:
      isLinked - 是否保持加入顺序
      uniqueGenerator - 唯一键生成规则函数,用于生成对象对应的唯一键
    • UniqueKeySet

      public UniqueKeySet(boolean isLinked, Function<V,K> uniqueGenerator, Collection<? extends V> c)
      构造
      Parameters:
      isLinked - 是否保持加入顺序
      uniqueGenerator - 唯一键生成规则函数,用于生成对象对应的唯一键
      c - 初始化加入的集合
    • UniqueKeySet

      public UniqueKeySet(int initialCapacity, float loadFactor, Function<V,K> uniqueGenerator)
      构造
      Parameters:
      initialCapacity - 初始容量
      loadFactor - 增长因子
      uniqueGenerator - 唯一键生成规则函数,用于生成对象对应的唯一键
    • UniqueKeySet

      public UniqueKeySet(MapBuilder<K,V> builder, Function<V,K> uniqueGenerator)
      构造
      Parameters:
      builder - 初始Map,定义了Map类型
      uniqueGenerator - 唯一键生成规则函数,用于生成对象对应的唯一键
  • Method Details