Package org.apache.iceberg.util
Class PartitionMap<V>
- java.lang.Object
-
- java.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
- org.apache.iceberg.util.PartitionMap<V>
-
- Type Parameters:
V- the type of values
- All Implemented Interfaces:
java.util.Map<Pair<java.lang.Integer,StructLike>,V>
public class PartitionMap<V> extends java.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
A map that uses a pair of spec ID and partition tuple as keys.This implementation internally stores provided partition tuples in
StructLikeMapfor consistent hashing and equals behavior. This ensures that objects of different types that represent the same structs are treated as equal keys in the map.Note: This map is not designed for concurrent modification by multiple threads. However, it supports safe concurrent reads, assuming there are no concurrent writes.
Note: This map does not support null pairs but supports null as partition tuples.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()VcomputeIfAbsent(int specId, StructLike struct, java.util.function.Supplier<V> valueSupplier)booleancontainsKey(int specId, StructLike struct)booleancontainsKey(java.lang.Object key)booleancontainsValue(java.lang.Object value)static <T> PartitionMap<T>create(java.util.Map<java.lang.Integer,PartitionSpec> specs)java.util.Set<java.util.Map.Entry<Pair<java.lang.Integer,StructLike>,V>>entrySet()Vget(int specId, StructLike struct)Vget(java.lang.Object key)booleanisEmpty()java.util.Set<Pair<java.lang.Integer,StructLike>>keySet()Vput(int specId, StructLike struct, V value)Vput(Pair<java.lang.Integer,StructLike> key, V value)voidputAll(java.util.Map<? extends Pair<java.lang.Integer,StructLike>,? extends V> otherMap)Vremove(java.lang.Object key)VremoveKey(int specId, StructLike struct)intsize()java.lang.StringtoString()java.util.Collection<V>values()
-
-
-
Method Detail
-
create
public static <T> PartitionMap<T> create(java.util.Map<java.lang.Integer,PartitionSpec> specs)
-
size
public int size()
- Specified by:
sizein interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
sizein classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
isEmptyin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKeyin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
containsKeyin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
containsKey
public boolean containsKey(int specId, StructLike struct)
-
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValuein interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
containsValuein classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
get
public V get(java.lang.Object key)
- Specified by:
getin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
getin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
get
public V get(int specId, StructLike struct)
-
put
public V put(Pair<java.lang.Integer,StructLike> key, V value)
- Specified by:
putin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
putin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
put
public V put(int specId, StructLike struct, V value)
-
putAll
public void putAll(java.util.Map<? extends Pair<java.lang.Integer,StructLike>,? extends V> otherMap)
- Specified by:
putAllin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
putAllin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
remove
public V remove(java.lang.Object key)
- Specified by:
removein interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
removein classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
removeKey
public V removeKey(int specId, StructLike struct)
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
clearin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
keySet
public java.util.Set<Pair<java.lang.Integer,StructLike>> keySet()
- Specified by:
keySetin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
keySetin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
values
public java.util.Collection<V> values()
- Specified by:
valuesin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Overrides:
valuesin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
entrySet
public java.util.Set<java.util.Map.Entry<Pair<java.lang.Integer,StructLike>,V>> entrySet()
- Specified by:
entrySetin interfacejava.util.Map<Pair<java.lang.Integer,StructLike>,V>- Specified by:
entrySetin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
computeIfAbsent
public V computeIfAbsent(int specId, StructLike struct, java.util.function.Supplier<V> valueSupplier)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.util.AbstractMap<Pair<java.lang.Integer,StructLike>,V>
-
-