@Override final Node.Builder<Long> makeNodeBuilder(long exactSizeIfKnown, IntFunction<Long[]> generator) { return Nodes.longBuilder(exactSizeIfKnown); }
@Override final Node.Builder<Long> makeNodeBuilder(long exactSizeIfKnown, IntFunction<Long[]> generator) { return Nodes.longBuilder(exactSizeIfKnown); }
/** * Produces a {@link Node.Builder.OfLong}. * * @param exactSizeIfKnown -1 if a variable size builder is requested, * otherwise the exact capacity desired. A fixed capacity builder will * fail if the wrong number of elements are added to the builder. * @return a {@code Node.Builder.OfLong} */ static Node.Builder.OfLong longBuilder(long exactSizeIfKnown) { return (exactSizeIfKnown >= 0 && exactSizeIfKnown < MAX_ARRAY_SIZE) ? new LongFixedNodeBuilder(exactSizeIfKnown) : longBuilder(); }
/** * Produces a {@link Node.Builder.OfLong}. * * @param exactSizeIfKnown -1 if a variable size builder is requested, * otherwise the exact capacity desired. A fixed capacity builder will * fail if the wrong number of elements are added to the builder. * @return a {@code Node.Builder.OfLong} */ static Node.Builder.OfLong longBuilder(long exactSizeIfKnown) { return (exactSizeIfKnown >= 0 && exactSizeIfKnown < MAX_ARRAY_SIZE) ? new LongFixedNodeBuilder(exactSizeIfKnown) : longBuilder(); }
static Node.OfLong truncate(Node.OfLong this_, long from, long to, IntFunction<Long[]> generator) { if (from == 0 && to == this_.count()) return this_; long size = to - from; Spliterator.OfLong spliterator = this_.spliterator(); Node.Builder.OfLong nodeBuilder = Nodes.longBuilder(size); nodeBuilder.begin(size); for (int i = 0; i < from && spliterator.tryAdvance((LongConsumer) e -> { }); i++) { } if (to == this_.count()) { spliterator.forEachRemaining((LongConsumer) nodeBuilder); } else { for (int i = 0; i < size && spliterator.tryAdvance((LongConsumer) nodeBuilder); i++) { } } nodeBuilder.end(); return nodeBuilder.build(); }
static Node.OfLong truncate(Node.OfLong this_, long from, long to, IntFunction<Long[]> generator) { if (from == 0 && to == this_.count()) return this_; long size = to - from; Spliterator.OfLong spliterator = this_.spliterator(); Node.Builder.OfLong nodeBuilder = Nodes.longBuilder(size); nodeBuilder.begin(size); for (int i = 0; i < from && spliterator.tryAdvance((LongConsumer) e -> { }); i++) { } if (to == this_.count()) { spliterator.forEachRemaining((LongConsumer) nodeBuilder); } else { for (int i = 0; i < size && spliterator.tryAdvance((LongConsumer) nodeBuilder); i++) { } } nodeBuilder.end(); return nodeBuilder.build(); }