Class ListTupleList

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<java.util.List<Member>>, java.util.Collection<java.util.List<Member>>, java.util.List<java.util.List<Member>>, java.util.RandomAccess, TupleIterable, TupleList

    public class ListTupleList
    extends AbstractEndToEndTupleList
    Implementation of TupleList that stores tuples end-to-end in a backing list.
     l1: {A,B,C},{D,E,F}
     l2: {a,b},{c,d},{e,f}
    
     externally looks like:
      [] <- {A,B,C,a,b}
      [] <- {A,B,C,c,d}
      [] <- {A,B,C,e,f}
      [] <- {D,E,F,a,b}
      [] <- {D,E,F,c,d}
      [] <- {D,E,F,e,d}
    
     but internally is:
      A,B,C,a,b,A,B,C,c,d,A,B,C,e,f,D,E,F,a,b,D,E,F,c,d,D,E,F,e,d
     
    Author:
    jhyde
    • Constructor Detail

      • ListTupleList

        public ListTupleList​(int arity,
                             java.util.List<Member> list)
        Creates a ListTupleList.
        Parameters:
        arity - Arity
        list - Backing list
    • Method Detail

      • get

        public Member get​(int slice,
                          int index)
        Description copied from interface: TupleList
        Returns a particular column of a particular row.

        Note that list.get(row, column) is equivalent to list.slice(column).get(row) and list.get(row).get(column) but is more efficient for most implementations of TupleList.

        Specified by:
        get in interface TupleList
        Overrides:
        get in class AbstractTupleList
        Parameters:
        slice - Column ordinal
        index - Row ordinal
        Returns:
        Member at given row and column
      • get

        public java.util.List<Member> get​(int index)
        Specified by:
        get in interface java.util.List<java.util.List<Member>>
        Specified by:
        get in class java.util.AbstractList<java.util.List<Member>>
      • add

        public void add​(int index,
                        java.util.List<Member> element)
        Specified by:
        add in interface java.util.List<java.util.List<Member>>
        Overrides:
        add in class java.util.AbstractList<java.util.List<Member>>
      • addTuple

        public void addTuple​(Member... members)
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Collection<java.util.List<Member>>
        Specified by:
        clear in interface java.util.List<java.util.List<Member>>
        Overrides:
        clear in class java.util.AbstractList<java.util.List<Member>>
      • remove

        public java.util.List<Member> remove​(int index)
        Specified by:
        remove in interface java.util.List<java.util.List<Member>>
        Overrides:
        remove in class java.util.AbstractList<java.util.List<Member>>
      • removeRange

        protected void removeRange​(int fromIndex,
                                   int toIndex)
        Overrides:
        removeRange in class java.util.AbstractList<java.util.List<Member>>
      • size

        public int size()
        Specified by:
        size in interface java.util.Collection<java.util.List<Member>>
        Specified by:
        size in interface java.util.List<java.util.List<Member>>
        Specified by:
        size in class java.util.AbstractCollection<java.util.List<Member>>
      • slice

        public java.util.List<Member> slice​(int column)
        Description copied from interface: TupleList
        Returns a list of the members at a given column.

        The list is modifiable if and only if this TupleList is modifiable. Adding an element to a slice will create a tuple whose members in other columns are null. Removing an element from a slicer will remove a tuple.

        Parameters:
        column - Ordinal of the member in each tuple to project
        Returns:
        List of members
      • cloneList

        public TupleList cloneList​(int capacity)
        Description copied from interface: TupleList
        Creates a copy of this list that has the same type and has a given capacity.

        If capacity is negative, populates the list. A deep copy is made, so that it the contents of the list are not affected to changes to any backing collections.

        Parameters:
        capacity - Capacity
        Returns:
        Copy of list, empty if capacity is non-negative