Package net.minecraft.util.collection
Class LinkedBlockPosHashSet
java.lang.Object
java.util.AbstractCollection<Long>
it.unimi.dsi.fastutil.longs.AbstractLongCollection
it.unimi.dsi.fastutil.longs.AbstractLongSet
it.unimi.dsi.fastutil.longs.AbstractLongSortedSet
it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
net.minecraft.util.collection.LinkedBlockPosHashSet
- All Implemented Interfaces:
Hash,LongBidirectionalIterable,LongCollection,LongIterable,LongSet,LongSortedSet,Serializable,Cloneable,Iterable<Long>,Collection<Long>,SequencedCollection<Long>,SequencedSet<Long>,Set<Long>,SortedSet<Long>
Represents a set of block positions (long representation).
Uses a Long2LongLinkedOpenHashMap as its internal storage medium
to facilitate the quick addition and removal of block positions.
Positions are index into a 2x cubed area that then stores as a long, a bitset representing which positions within that area are currently set.
This has two major advantages:
- Positions that are geometrically close together are grouped together in memory. This localizes adjacent reads and writes.
- A larger number of positions can be comprised together into one long allowing for a smaller memory footprint.
- See Also:
- Mappings:
Namespace Name named net/minecraft/util/collection/LinkedBlockPosHashSetintermediary net/minecraft/class_6136official eoz
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classRepresents a three-dimensional mapping from a block position to a bitset of values set at that position.Nested classes/interfaces inherited from interface it.unimi.dsi.fastutil.Hash
Hash.Strategy<K> -
Field Summary
FieldsFields inherited from class it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
containsNull, f, first, key, last, link, mask, maxFill, minN, n, sizeFields inherited from interface it.unimi.dsi.fastutil.Hash
DEFAULT_GROWTH_FACTOR, DEFAULT_INITIAL_SIZE, DEFAULT_LOAD_FACTOR, FAST_LOAD_FACTOR, FREE, OCCUPIED, PRIMES, REMOVED, VERY_FAST_LOAD_FACTOR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(long posLong) Marks a block position as "set".booleanisEmpty()Checks whether there are any block positions that have been "set".booleanrem(long posLong) Marks a block position as "not set".longPops first block position off of this set.intsize()Methods inherited from class it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
addAll, addAll, addAndMoveToFirst, addAndMoveToLast, clear, clone, comparator, contains, ensureCapacity, firstLong, fixPointers, fixPointers, forEach, hashCode, headSet, iterator, iterator, lastLong, of, of, of, of, of, rehash, remove, removeLastLong, shiftKeys, spliterator, subSet, tailSet, toSet, toSetWithExpectedSize, trim, trimMethods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongSet
equalsMethods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongCollection
add, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, toArray, toLongArray, toLongArray, toStringMethods inherited from class java.util.AbstractCollection
toArray, toArrayMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
toArrayMethods inherited from interface it.unimi.dsi.fastutil.longs.LongCollection
containsAll, longIterator, longParallelStream, longSpliterator, longStream, parallelStream, removeAll, removeIf, removeIf, removeIf, retainAll, stream, toArray, toLongArray, toLongArrayMethods inherited from interface it.unimi.dsi.fastutil.longs.LongIterable
forEach, forEachMethods inherited from interface it.unimi.dsi.fastutil.longs.LongSortedSet
first, headSet, last, subSet, tailSetMethods inherited from interface java.util.Set
add, contains, containsAll, equals, remove, removeAll, retainAll, toArray, toArrayMethods inherited from interface java.util.SortedSet
addFirst, addLast, getFirst, getLast, removeFirst, removeLast, reversed
-
Field Details
-
buffer
- Mappings:
Namespace Name Mixin selector named bufferLnet/minecraft/util/collection/LinkedBlockPosHashSet;buffer:Lnet/minecraft/util/collection/LinkedBlockPosHashSet$Storage;intermediary field_31715Lnet/minecraft/class_6136;field_31715:Lnet/minecraft/class_6136$class_6137;official aLeoz;a:Leoz$a;
-
-
Constructor Details
-
LinkedBlockPosHashSet
public LinkedBlockPosHashSet(int expectedSize, float loadFactor) - Mappings:
Namespace Name Mixin selector named <init>Lnet/minecraft/util/collection/LinkedBlockPosHashSet;<init>(IF)Vintermediary <init>Lnet/minecraft/class_6136;<init>(IF)Vofficial <init>Leoz;<init>(IF)V
-
-
Method Details
-
add
public boolean add(long posLong) Marks a block position as "set".- Specified by:
addin interfaceLongCollection- Overrides:
addin classLongLinkedOpenHashSet- Mappings:
Namespace Name Mixin selector named addLnet/minecraft/util/collection/LinkedBlockPosHashSet;add(J)Zintermediary addLnet/minecraft/class_6136;add(J)Zofficial addLeoz;add(J)Z
-
rem
public boolean rem(long posLong) Marks a block position as "not set". Effectively removing it from this collection.- Specified by:
remin interfaceLongCollection- Specified by:
remin interfaceLongSet- Overrides:
remin classAbstractLongSet- Mappings:
Namespace Name Mixin selector named remLnet/minecraft/util/collection/LinkedBlockPosHashSet;rem(J)Zintermediary remLnet/minecraft/class_6136;rem(J)Zofficial remLeoz;rem(J)Z
-
removeFirstLong
public long removeFirstLong()Pops first block position off of this set.- Overrides:
removeFirstLongin classLongLinkedOpenHashSet- Mappings:
Namespace Name Mixin selector named removeFirstLongLnet/minecraft/util/collection/LinkedBlockPosHashSet;removeFirstLong()Jintermediary removeFirstLongLnet/minecraft/class_6136;removeFirstLong()Jofficial removeFirstLongLeoz;removeFirstLong()J
-
size
public int size()- Specified by:
sizein interfaceCollection<Long>- Specified by:
sizein interfaceSet<Long>- Overrides:
sizein classLongLinkedOpenHashSet- Throws:
UnsupportedOperationException- Mappings:
Namespace Name Mixin selector named sizeLnet/minecraft/util/collection/LinkedBlockPosHashSet;size()Iintermediary sizeLnet/minecraft/class_6136;size()Iofficial sizeLeoz;size()I
-
isEmpty
public boolean isEmpty()Checks whether there are any block positions that have been "set".- Specified by:
isEmptyin interfaceCollection<Long>- Specified by:
isEmptyin interfaceSet<Long>- Overrides:
isEmptyin classLongLinkedOpenHashSet- Returns:
trueis this collection is empty.- Mappings:
Namespace Name Mixin selector named isEmptyLnet/minecraft/util/collection/LinkedBlockPosHashSet;isEmpty()Zintermediary isEmptyLnet/minecraft/class_6136;isEmpty()Zofficial isEmptyLeoz;isEmpty()Z
-