Class OfflineIterable<T,​U extends T>

  • All Implemented Interfaces:
    it.unimi.dsi.fastutil.Size64, SafelyCloseable, java.io.Closeable, java.lang.AutoCloseable, java.lang.Iterable<U>

    public class OfflineIterable<T,​U extends T>
    extends java.lang.Object
    implements java.lang.Iterable<U>, SafelyCloseable, it.unimi.dsi.fastutil.Size64
    An iterable that offers elements that were previously stored offline using specialized serialization methods. At construction, you provide a serializer that establishes how elements are written offline; after that, you can add elements one at a time or in a bulk way. At any moment, you can get an OfflineIterator on this object that returns all the elements added so far. Note that the returned iterator caches the current number of elements, so each iterator will return just the elements added at the time of its creation.

    Warning: The store object provided at construction time is shared by all iterators.

    Closing

    Both OfflineIterable and OfflineIterator are SafelyCloseable (the latter will close its input stream when hasNext() returns false), but for better resource management you should close them after usage.

    Since:
    0.9.2
    Author:
    Sebastiano Vigna
    • Constructor Detail

      • OfflineIterable

        public OfflineIterable​(OfflineIterable.Serializer<? super T,​U> serializer,
                               U store)
                        throws java.io.IOException
        Creates an offline iterable with given serializer.
        Parameters:
        serializer - the serializer to be used.
        store - an object that is (re)used by the iterator(s) iterating on this iterable.
        Throws:
        java.io.IOException
    • Method Detail

      • add

        public void add​(T x)
                 throws java.io.IOException
        Adds a new element at the end of this iterable.
        Parameters:
        x - the element to be added.
        Throws:
        java.io.IOException
      • addAll

        public void addAll​(java.lang.Iterable<T> it)
                    throws java.io.IOException
        Adds all the elements of the given iterable at the end of this iterable.
        Parameters:
        it - the iterable producing the elements to be added.
        Throws:
        java.io.IOException
      • clear

        public void clear()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • size

        @Deprecated
        public int size()
        Deprecated.
        Use size64() instead.
        Returns the number of elements added so far, unless it is too big to fit in an integer (in which case this method will throw an exception).
        Specified by:
        size in interface it.unimi.dsi.fastutil.Size64
        Returns:
        the number of elements added so far.
      • size64

        public long size64()
        Returns the number of elements added so far.
        Specified by:
        size64 in interface it.unimi.dsi.fastutil.Size64
        Returns:
        the number of elements added so far.