public abstract class AbstractSet extends PersistentObject
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CAPACITY |
static double |
DEFAULT_MAX_LOAD_FACTOR |
static double |
DEFAULT_MIN_LOAD_FACTOR |
protected int |
distinct
The number of distinct associations in the map; its "size()".
|
protected int |
highWaterMark |
protected int |
lowWaterMark
The table capacity c=table.length always satisfies the invariant c * minLoadFactor <= s <= c *
maxLoadFactor, where s=size() is the number of associations currently contained.
|
protected double |
maxLoadFactor
The maximum load factor for the hashtable.
|
protected double |
minLoadFactor
The minimum load factor for the hashtable.
|
Constructor and Description |
---|
AbstractSet() |
Modifier and Type | Method and Description |
---|---|
protected int |
chooseGrowCapacity(int size,
double minLoad,
double maxLoad)
Chooses a new prime table capacity optimized for growing that (approximately) satisfies the invariant c *
minLoadFactor <= size <= c * maxLoadFactor and has at least one FREE slot for the given size.
|
protected int |
chooseHighWaterMark(int capacity,
double maxLoad)
Returns new high water mark threshold based on current capacity and maxLoadFactor.
|
protected int |
chooseLowWaterMark(int capacity,
double minLoad)
Returns new low water mark threshold based on current capacity and minLoadFactor.
|
protected int |
chooseMeanCapacity(int size,
double minLoad,
double maxLoad)
Chooses a new prime table capacity neither favoring shrinking nor growing, that (approximately) satisfies the
invariant c * minLoadFactor <= size <= c * maxLoadFactor and has at least one FREE slot for the given
size.
|
protected int |
chooseShrinkCapacity(int size,
double minLoad,
double maxLoad)
Chooses a new prime table capacity optimized for shrinking that (approximately) satisfies the invariant c *
minLoadFactor <= size <= c * maxLoadFactor and has at least one FREE slot for the given size.
|
abstract void |
clear()
Removes all (key,value) associations from the receiver.
|
void |
ensureCapacity(int minCapacity)
Ensures that the receiver can hold at least the specified number of elements without needing to allocate new
internal memory.
|
protected static boolean |
equalsMindTheNull(Object a,
Object b) |
boolean |
isEmpty()
Returns true if the receiver contains no (key,value) associations.
|
protected int |
nextPrime(int desiredCapacity)
Returns a prime number which is
>= desiredCapacity and very close to desiredCapacity
(within 11% if desiredCapacity >= 1000 ). |
protected void |
setUp(int initialCapacity,
double minLoadFactor,
double maxLoadFactor)
Initializes the receiver.
|
int |
size()
Returns the number of (key,value) associations currently contained.
|
void |
trimToSize()
Trims the capacity of the receiver to be the receiver's current size.
|
clone
protected int distinct
protected int lowWaterMark
protected int highWaterMark
protected double minLoadFactor
protected double maxLoadFactor
public static final int DEFAULT_CAPACITY
public static final double DEFAULT_MIN_LOAD_FACTOR
public static final double DEFAULT_MAX_LOAD_FACTOR
protected int chooseGrowCapacity(int size, double minLoad, double maxLoad)
protected int chooseHighWaterMark(int capacity, double maxLoad)
protected int chooseLowWaterMark(int capacity, double minLoad)
protected int chooseMeanCapacity(int size, double minLoad, double maxLoad)
protected int chooseShrinkCapacity(int size, double minLoad, double maxLoad)
public abstract void clear()
public void ensureCapacity(int minCapacity)
This method never need be called; it is for performance tuning only. Calling this method before put()ing a large number of associations boosts performance, because the receiver will grow only once instead of potentially many times.
This default implementation does nothing. Override this method if necessary.
minCapacity
- the desired minimum capacity.public boolean isEmpty()
protected int nextPrime(int desiredCapacity)
>= desiredCapacity
and very close to desiredCapacity
(within 11% if desiredCapacity >= 1000
).desiredCapacity
- the capacity desired by the user.protected void setUp(int initialCapacity, double minLoadFactor, double maxLoadFactor)
initialCapacity
- the initial capacity of the receiver.minLoadFactor
- the minLoadFactor of the receiver.maxLoadFactor
- the maxLoadFactor of the receiver.IllegalArgumentException
- if initialCapacity < 0 || (minLoadFactor < 0.0 || minLoadFactor >= 1.0) ||
(maxLoadFactor <= 0.0 || maxLoadFactor >= 1.0) || (minLoadFactor >=
maxLoadFactor).public int size()
public void trimToSize()
This default implementation does nothing. Override this method if necessary.
Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.