com.carrotsearch.hppcrt.DoubleIndexedContainer Maven / Gradle / Ivy
package com.carrotsearch.hppcrt;
import java.util.List;
import java.util.RandomAccess;
import com.carrotsearch.hppcrt.predicates.DoublePredicate;
import com.carrotsearch.hppcrt.procedures.DoubleProcedure;
/**
* An indexed container provides random access to elements based on an
* index
. Indexes are zero-based.
*/
@javax.annotation.Generated(
date = "2017-07-11T19:16:23+0200",
value = "KTypeIndexedContainer.java")
public interface DoubleIndexedContainer extends DoubleCollection, RandomAccess
{
/**
* Removes the first element that equals e1
, returning its
* deleted position or -1
if the element was not found.
*/
int removeFirst(double e1);
/**
* Removes the last element that equals e1
, returning its
* deleted position or -1
if the element was not found.
*/
int removeLast(double e1);
/**
* Returns the index of the first occurrence of the specified element in this list,
* or -1 if this list does not contain the element.
*/
int indexOf(double e1);
/**
* Returns the index of the last occurrence of the specified element in this list,
* or -1 if this list does not contain the element.
*/
int lastIndexOf(double e1);
/**
* Adds an element to the end of this container (the last index is incremented by one).
*/
void add(double e1);
/**
* Inserts the specified element at the specified position in this list.
*
* @param index The index at which the element should be inserted, shifting
* any existing and subsequent elements to the right.
* Precondition : index must be valid !
*/
void insert(int index, double e1);
/**
* Replaces the element at the specified position in this list
* with the specified element.
* Precondition : index must be valid !
* @return Returns the previous value in the list.
*/
double set(int index, double e1);
/**
* @return Returns the element at index index
from the list.
* Precondition : index must be valid !
*/
public double get(int index);
/**
* Removes the element at the specified position in this list and returns it.
* Precondition : index must be valid !
* Careful. Do not confuse this method with the overridden signature in
* Java Collections ({@link List#remove(Object)}). Use: {@link #removeAll},
* {@link #removeFirst} or {@link #removeLast} depending
* on the actual need.
*/
double remove(int index);
/**
* Removes from this list all of the elements whose index is between
* fromIndex
, inclusive, and toIndex
, exclusive.
*/
void removeRange(int fromIndex, int toIndex);
/**
* Applies procedure
to a slice of the container,
* fromIndex
, inclusive, to toIndex
, exclusive.
*/
T forEach(final T procedure, final int fromIndex, final int toIndex);
/**
* Applies predicate
to a slice of the container,
* fromIndex
, inclusive, to toIndex
,
* exclusive, or until predicate returns false
.
*/
T forEach(final T predicate, final int fromIndex, final int toIndex);
}