Class ImmutableArrayItem

    • Constructor Detail

    • Method Detail

      • get

        public GroundedValue get​(int index)
        Get a member of the array
        Parameters:
        index - the position of the member to retrieve (zero-based)
        Returns:
        the value at the given position.
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • put

        public ArrayItem put​(int index,
                             GroundedValue newValue)
        Replace a member of the array
        Parameters:
        index - the position of the member to replace (zero-based)
        newValue - the replacement value
        Returns:
        the value at the given position.
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • insert

        public ArrayItem insert​(int position,
                                GroundedValue member)
        Insert a new member into an array
        Parameters:
        position - the 0-based position that the new item will assume
        member - the new member to be inserted
        Returns:
        a new array item with the new member inserted
        Throws:
        java.lang.IndexOutOfBoundsException - if position is out of range
      • isEmpty

        public boolean isEmpty()
        Ask whether the array is empty
        Returns:
        true if and only if the size of the array is zero
      • members

        public java.lang.Iterable<GroundedValue> members()
        Get the list of all members of the array
        Returns:
        an iterator over the members of the array
      • subArray

        public ArrayItem subArray​(int start,
                                  int end)
        Get a subarray given a start and end position
        Parameters:
        start - the start position (zero based)
        end - the end position (the position of the first item not to be returned) (zero based)
        Returns:
        a new array item containing the sub-array
        Throws:
        java.lang.IndexOutOfBoundsException - if start, or start+end, is out of range
      • concat

        public ArrayItem concat​(ArrayItem other)
        Concatenate this array with another
        Parameters:
        other - the second array
        Returns:
        the concatenation of the two arrays; that is, an array containing first the members of this array, and then the members of the other array
      • remove

        public ArrayItem remove​(int index)
        Remove a member from the array
        Parameters:
        index - the position of the member to be removed (zero-based)
        Returns:
        a new array in which the requested member has been removed.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range
      • removeSeveral

        public ArrayItem removeSeveral​(IntSet positions)
        Remove zero or more members from the array
        Parameters:
        positions - the positions of the members to be removed (zero-based). A value that is out of range is ignored.
        Returns:
        a new array in which the requested member has been removed