Version 10 (modified by 3 years ago) ( diff ) | ,
---|
ImmutableList
Part of utilities.
ImmutableList is similar to the common java.util.List: it contains a list of elements. However, the big differences are
- ImmutableList is immutable, so it can not be modified
- ImmutableList is generating elements on request only, and does not keep the elements.
As a simple comparison, suppose you need a list of all integers between 1000 and 2000. You could write a loop to fill 1000 elements of an ArrayList. Alternatively, you can create an ImmutableList instance where get(n) creates and returns the expected element on request.
ImmutableList uses BigInteger for indexing to support unlimited list sizes.
This mechanism is especially useful when the list elements have to be generated on an as-needed basis. For example when large lists are used, when the list elements are expensive to create, or when you already know that the user of the list will only pick a few items from the list, or even just wants to know the size of the list.
The main classes here are
class | function |
ImmutableList | interface, providing get(BigInteger) and size() and being Iterable |
AbstractImmutableList | abstract superclass with default iterator() implementation, toString and get(long) |
JoinedList | Joins 2 immutablelists into one. |
MapList | Maps a function over the input list |
MapThreadList | Maps a 2-arg function over 2 lists |
Outer | maps an input list into a list containing all possible combinations with one element from each of the provided lists |
AbstractPermutations | Abstract superclass of all classes that map some input list into a list of all permutations of the input list |
PermutationsOrderedWithoutReturn | Maps input list into list of all permutations of the input list, when drawing N without return. |
PermutationsWithoutReturn | Maps input list into list of all permutations of the input list, when drawn all without return |
PermutationsWithReturn | Maps the input list into list of all permutations of the input list, when drawn all with return |
Range | A list of all values from low to high with given step size |
ShuffledList | A list of all values of the input list, but shuffled to random order |
Tuples | Maps two input lists into a list of tuples. |