Package com.ibm.wala.util.intset
Class MutableSparseIntSet
- java.lang.Object
-
- com.ibm.wala.util.intset.SparseIntSet
-
- com.ibm.wala.util.intset.MutableSparseIntSet
-
- All Implemented Interfaces:
IntSet,MutableIntSet,Serializable
- Direct Known Subclasses:
TunedMutableSparseIntSet
public class MutableSparseIntSet extends SparseIntSet implements MutableIntSet
A sparse ordered, mutable duplicate-free, fully-encapsulated set of integers. Instances are not canonical, except for EMPTY.This implementation will be inefficient if these sets get large.
TODO: even for small sets, we probably want to work on this to reduce the allocation activity.
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.ibm.wala.util.intset.SparseIntSet
elements, size
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedMutableSparseIntSet()protectedMutableSparseIntSet(int[] backingStore)protectedMutableSparseIntSet(@Nullable IntSet set)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(int value)Add an integer value to this set.booleanaddAll(@Nullable SparseIntSet that)Add all elements from another int set.booleanaddAll(IntSet set)Add all elements from another int set.booleanaddAllInIntersection(IntSet other, IntSet filter)voidclear()remove all elements from this setvoidcopySet(@Nullable IntSet that)Set the value of this to be the same as the value of setstatic MutableSparseIntSetcreateMutableSparseIntSet(int initialCapacity)static MutableSparseIntSetdiff(MutableSparseIntSet A, MutableSparseIntSet B)floatgetExpansionFactor()intgetInitialNonEmptySize()voidintersectWith(IntSet set)Intersect this with another set.voidintersectWith(SparseIntSet set)static MutableSparseIntSetmake(@Nullable IntSet set)static MutableSparseIntSetmakeEmpty()booleanremove(int value)Remove an integer from this set.voidremoveAll(BitVectorIntSet v)voidremoveAll(MutableSparseIntSet set)TODO optimize<T extends BitVectorBase<T>>
voidremoveAll(T v)-
Methods inherited from class com.ibm.wala.util.intset.SparseIntSet
add, contains, containsAny, containsAny, diff, diffInternal, elementAt, foreach, foreachExcluding, getIndex, intersection, intIterator, isEmpty, isSubset, max, pair, parseIntArray, sameValue, singleton, size, toIntArray, toString, union
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.ibm.wala.util.intset.IntSet
contains, containsAny, foreach, foreachExcluding, intersection, intIterator, isEmpty, isSubset, max, sameValue, size, union
-
-
-
-
Constructor Detail
-
MutableSparseIntSet
protected MutableSparseIntSet(@Nullable IntSet set)
-
MutableSparseIntSet
protected MutableSparseIntSet(int[] backingStore)
-
MutableSparseIntSet
protected MutableSparseIntSet()
-
-
Method Detail
-
clear
public void clear()
Description copied from interface:MutableIntSetremove all elements from this set- Specified by:
clearin interfaceMutableIntSet
-
remove
@NullUnmarked public boolean remove(int value)
Description copied from interface:MutableIntSetRemove an integer from this set.- Specified by:
removein interfaceMutableIntSet- Parameters:
value- integer to remove- Returns:
- true iff the value of this changes.
-
getInitialNonEmptySize
public int getInitialNonEmptySize()
-
getExpansionFactor
public float getExpansionFactor()
-
add
public boolean add(int value)
Description copied from interface:MutableIntSetAdd an integer value to this set.- Specified by:
addin interfaceMutableIntSet- Parameters:
value- integer to add- Returns:
- true iff this value changes
-
copySet
@NullUnmarked public void copySet(@Nullable IntSet that) throws IllegalArgumentException
Description copied from interface:MutableIntSetSet the value of this to be the same as the value of set- Specified by:
copySetin interfaceMutableIntSet- Throws:
IllegalArgumentException- if that == null
-
intersectWith
public void intersectWith(IntSet set)
Description copied from interface:MutableIntSetIntersect this with another set.- Specified by:
intersectWithin interfaceMutableIntSet
-
intersectWith
@NullUnmarked public void intersectWith(SparseIntSet set)
-
addAll
public boolean addAll(IntSet set) throws IllegalArgumentException
Add all elements from another int set.- Specified by:
addAllin interfaceMutableIntSet- Returns:
- true iff this set changes
- Throws:
IllegalArgumentException- if set == null
-
addAll
public boolean addAll(@Nullable SparseIntSet that)
Add all elements from another int set.- Returns:
- true iff this set changes
-
removeAll
public void removeAll(BitVectorIntSet v)
-
removeAll
public <T extends BitVectorBase<T>> void removeAll(T v)
-
removeAll
public void removeAll(MutableSparseIntSet set)
TODO optimize- Throws:
IllegalArgumentException- if set is null
-
addAllInIntersection
public boolean addAllInIntersection(IntSet other, IntSet filter)
- Specified by:
addAllInIntersectionin interfaceMutableIntSet
-
diff
public static MutableSparseIntSet diff(MutableSparseIntSet A, MutableSparseIntSet B)
-
make
public static MutableSparseIntSet make(@Nullable IntSet set)
-
makeEmpty
public static MutableSparseIntSet makeEmpty()
-
createMutableSparseIntSet
public static MutableSparseIntSet createMutableSparseIntSet(int initialCapacity) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
-