Class DistinctValuesAggregator<K,V>

java.lang.Object
com.loomcache.server.compute.DistinctValuesAggregator<K,V>
Type Parameters:
K - the type of the key
V - the type of the value
All Implemented Interfaces:
Aggregator<K,V,Set<V>>

public class DistinctValuesAggregator<K,V> extends Object implements Aggregator<K,V,Set<V>>
Built-in aggregator that collects distinct values from the map.

Returns an unmodifiable Set containing all unique values found in the map. Null values are skipped.

  • Constructor Details

    • DistinctValuesAggregator

      public DistinctValuesAggregator()
      Create a new distinct values aggregator with the default capacity limit.
    • DistinctValuesAggregator

      public DistinctValuesAggregator(int maxDistinctValues)
      Create a new distinct values aggregator with a custom capacity limit.
      Parameters:
      maxDistinctValues - the maximum number of distinct values to retain
  • Method Details

    • accumulate

      public void accumulate(Map.Entry<K,V> entry)
      Description copied from interface: Aggregator
      Accumulate a single entry into this aggregator.

      This method is called once for each entry in the map during the scan.

      Specified by:
      accumulate in interface Aggregator<K,V,Set<V>>
      Parameters:
      entry - the entry to accumulate (may be null if entry was deleted)
    • combine

      public Aggregator<K,V,Set<V>> combine(Aggregator<K,V,Set<V>> other)
      Description copied from interface: Aggregator
      Combine this aggregator with another from a parallel execution.

      This method is used to merge results from multiple parallel aggregations into a single result. Implementations should combine the internal state of both aggregators.

      Specified by:
      combine in interface Aggregator<K,V,Set<V>>
      Parameters:
      other - the other aggregator to combine with (must not be null)
      Returns:
      a new aggregator combining both results (may be this or other)
    • aggregate

      public Set<V> aggregate()
      Description copied from interface: Aggregator
      Get the final aggregated result.

      This is called after all entries have been accumulated and all partial results have been combined.

      Specified by:
      aggregate in interface Aggregator<K,V,Set<V>>
      Returns:
      the aggregated result