java.io.Serializable
, java.lang.Cloneable
public class LazyList
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable
A List helper class that attempts to avoid unnecessary List
creation. If a method needs to create a List to return, but it is
expected that this will either be empty or frequently contain a
single item, then using LazyList will avoid additional object
creations by using Collections.EMPTY_LIST
or
Collections.singletonList(Object)
where possible.
LazyList works by passing an opaque representation of the list in
and out of all the LazyList methods. This opaque object is either
null for an empty list, an Object for a list with a single entry
or an ArrayList
for a list of items.
Object lazylist =null; while(loopCondition) { Object item = getItem(); if (item.isToBeAdded()) lazylist = LazyList.add(lazylist,item); } return LazyList.getList(lazylist);An ArrayList of default size is used as the initial LazyList.
List
,
Serialized FormModifier and Type | Method | Description |
---|---|---|
static java.lang.Object |
add(java.lang.Object list,
int index,
java.lang.Object item) |
Add an item to a LazyList
|
static java.lang.Object |
add(java.lang.Object list,
java.lang.Object item) |
Add an item to a LazyList
|
static java.lang.Object |
addArray(java.lang.Object list,
java.lang.Object[] array) |
Add the contents of an array to a LazyList
|
static java.lang.Object |
addCollection(java.lang.Object list,
java.util.Collection<?> collection) |
Add the contents of a Collection to a LazyList
|
static java.lang.Object |
clone(java.lang.Object list) |
|
static boolean |
contains(java.lang.Object list,
java.lang.Object item) |
|
static java.lang.Object |
ensureSize(java.lang.Object list,
int initialSize) |
Ensure the capacity of the underlying list.
|
static <E> E |
get(java.lang.Object list,
int i) |
Get item from the list
|
static <E> java.util.List<E> |
getList(java.lang.Object list) |
Get the real List from a LazyList.
|
static <E> java.util.List<E> |
getList(java.lang.Object list,
boolean nullForEmpty) |
Get the real List from a LazyList.
|
static boolean |
hasEntry(java.lang.Object list) |
Simple utility method to test if List has at least 1 entry.
|
static boolean |
isEmpty(java.lang.Object list) |
Simple utility method to test if List is empty
|
static <E> java.util.Iterator<E> |
iterator(java.lang.Object list) |
|
static <E> java.util.ListIterator<E> |
listIterator(java.lang.Object list) |
|
static java.lang.Object |
remove(java.lang.Object list,
int i) |
|
static java.lang.Object |
remove(java.lang.Object list,
java.lang.Object o) |
|
static int |
size(java.lang.Object list) |
The size of a lazy List
|
static java.lang.Object |
toArray(java.lang.Object list,
java.lang.Class<?> clazz) |
Convert a lazylist to an array
|
static java.lang.String |
toString(java.lang.Object list) |
|
static java.lang.String[] |
toStringArray(java.lang.Object list) |
public static java.lang.Object add(java.lang.Object list, java.lang.Object item)
list
- The list to add to or null if none yet created.item
- The item to add.public static java.lang.Object add(java.lang.Object list, int index, java.lang.Object item)
list
- The list to add to or null if none yet created.index
- The index to add the item at.item
- The item to add.public static java.lang.Object addCollection(java.lang.Object list, java.util.Collection<?> collection)
list
- The list to add to or null if none yet created.collection
- The Collection whose contents should be added.public static java.lang.Object addArray(java.lang.Object list, java.lang.Object[] array)
list
- The list to add to or null if none yet created.array
- The array whose contents should be added.public static java.lang.Object ensureSize(java.lang.Object list, int initialSize)
list
- the list to growinitialSize
- the size to grow topublic static java.lang.Object remove(java.lang.Object list, java.lang.Object o)
public static java.lang.Object remove(java.lang.Object list, int i)
public static <E> java.util.List<E> getList(java.lang.Object list)
E
- the list entry typelist
- A LazyList returned from LazyList.add(Object)public static <E> java.util.List<E> getList(java.lang.Object list, boolean nullForEmpty)
E
- the list entry typelist
- A LazyList returned from LazyList.add(Object) or nullnullForEmpty
- If true, null is returned instead of an
empty list.public static boolean hasEntry(java.lang.Object list)
list
- a LazyList, List
or Object
public static boolean isEmpty(java.lang.Object list)
list
- a LazyList, List
or Object
public static java.lang.String[] toStringArray(java.lang.Object list)
public static java.lang.Object toArray(java.lang.Object list, java.lang.Class<?> clazz)
list
- The list to convertclazz
- The class of the array, which may be a primitive typepublic static int size(java.lang.Object list)
list
- A LazyList returned from LazyList.add(Object) or nullpublic static <E> E get(java.lang.Object list, int i)
E
- the list entry typelist
- A LazyList returned from LazyList.add(Object) or nulli
- int indexpublic static boolean contains(java.lang.Object list, java.lang.Object item)
public static java.lang.Object clone(java.lang.Object list)
public static java.lang.String toString(java.lang.Object list)
public static <E> java.util.Iterator<E> iterator(java.lang.Object list)
public static <E> java.util.ListIterator<E> listIterator(java.lang.Object list)
Copyright © 1995–2018 Webtide. All rights reserved.