org.javimmutable.collections.common
Class IndexedList<T>

java.lang.Object
  extended by org.javimmutable.collections.common.IndexedList<T>
All Implemented Interfaces:
Indexed<T>

@Immutable
public class IndexedList<T>
extends Object
implements Indexed<T>


Method Summary
static
<T> IndexedList<T>
copied(List<? extends T> values)
          Produces an instance using a copy of the specified List to ensure that changes to the List will not influence the values returned by the instance's methods.
 T get(int index)
          Retrieve the value.
static
<T> IndexedList<T>
retained(List<? extends T> values)
          Produces an instance using the provided List.
 int size()
          Retrieve the number of values available in the container.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

copied

public static <T> IndexedList<T> copied(List<? extends T> values)
Produces an instance using a copy of the specified List to ensure that changes to the List will not influence the values returned by the instance's methods. This is generally preferred to the unsafe() constructor.

Type Parameters:
T -
Parameters:
values -
Returns:

retained

public static <T> IndexedList<T> retained(List<? extends T> values)
Produces an instance using the provided List. This makes the instance unsafe for sharing since changes to the List will cause changes to this instance's values. However this can be useful when performance is important and the instance will not be shared or retained beyond a single method scope.

Type Parameters:
T -
Parameters:
values -
Returns:

get

public T get(int index)
Description copied from interface: Indexed
Retrieve the value. The index must be valid for the container's current size (i.e. [0-size)

Specified by:
get in interface Indexed<T>
Returns:

size

public int size()
Description copied from interface: Indexed
Retrieve the number of values available in the container.

Specified by:
size in interface Indexed<T>
Returns:


Copyright © 2014 Burton Computer Corporation. All rights reserved.