Class ArcLabelledNodeIterator
java.lang.Object
it.unimi.dsi.big.webgraph.NodeIterator
it.unimi.dsi.big.webgraph.labelling.ArcLabelledNodeIterator
- All Implemented Interfaces:
LongIterator
,Iterator<Long>
,PrimitiveIterator<Long,
,LongConsumer> PrimitiveIterator.OfLong
An iterator returning nodes, their successors and labels on the arcs.
The purpose of this abstract implementation is to override covariantly
the return type of of NodeIterator.successors()
, so that
it has to be a ArcLabelledNodeIterator.LabelledArcIterator
, and provide a general
implementation of a new labelBigArray()
method that returns
the labels of the arcs going out of the current node as an array.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
An iterator returning successor and the labels of the arcs toward them.Nested classes/interfaces inherited from interface java.util.PrimitiveIterator
PrimitiveIterator.OfDouble, PrimitiveIterator.OfInt, PrimitiveIterator.OfLong
-
Field Summary
Fields inherited from class it.unimi.dsi.big.webgraph.NodeIterator
EMPTY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncopy
(long upperBound) Creates a copy of this iterator that will never return nodes ≥ the specified bound; the copy must be accessible by a different thread.Label[][]
Returns a reference to an array containing the labels of the arcs going out of the current node in the same order as the order in which the corresponding successors are returned bysuccessors()
.Returns a lazy iterator over the successors of the current node.protected static Label[][]
unwrap
(ArcLabelledNodeIterator.LabelledArcIterator iterator, long howMany) Returns a new array of labels filled with exactlyhowMany
labels from the given iterator.Methods inherited from class it.unimi.dsi.big.webgraph.NodeIterator
outdegree, skip, successorBigArray
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongIterator
forEachRemaining, forEachRemaining, next, nextLong, skip
Methods inherited from interface java.util.PrimitiveIterator.OfLong
forEachRemaining
-
Constructor Details
-
ArcLabelledNodeIterator
public ArcLabelledNodeIterator()
-
-
Method Details
-
successors
Description copied from class:NodeIterator
Returns a lazy iterator over the successors of the current node. The iteration terminates when -1 is returned.- Overrides:
successors
in classNodeIterator
- Returns:
- a lazy iterator over the successors of the current node.
-
labelBigArray
Returns a reference to an array containing the labels of the arcs going out of the current node in the same order as the order in which the corresponding successors are returned bysuccessors()
.The returned array may contain more entries than the outdegree of the current node. However, only those with indices from 0 (inclusive) to the outdegree of the current node (exclusive) contain valid data.
- Returns:
- an array whose first elements are the labels of the arcs going out of the current node; the array must not be modified by the caller.
- Implementation Specification:
- This implementation just unwrap the iterator returned by
successors()
and writes in a newly allocated array copies of the labels returned byArcLabelledNodeIterator.LabelledArcIterator.label()
.
-
unwrap
protected static Label[][] unwrap(ArcLabelledNodeIterator.LabelledArcIterator iterator, long howMany) Returns a new array of labels filled with exactlyhowMany
labels from the given iterator. Note that the iterator is required to have at least as many labels as needed.- Parameters:
iterator
- the iterator.howMany
- the number of labels.- Returns:
- the new array where labels are copied.
-
copy
Creates a copy of this iterator that will never return nodes ≥ the specified bound; the copy must be accessible by a different thread. Optional operation (it should be implemented by all classes that allow to scan the graph more than once).- Overrides:
copy
in classNodeIterator
- Parameters:
upperBound
- the upper bound.- Returns:
- a copy of this iterator, with the given upper bound.
- Implementation Specification:
- This implementation just throws an
UnsupportedOperationException
. It should be kept in sync with the result ofImmutableGraph.hasCopiableIterators()
.
-