net.ranides.assira.collection.list
Class VirtualList<T>
java.lang.Object
net.ranides.assira.collection.list.VirtualList<T>
- Type Parameters:
T -
- All Implemented Interfaces:
- Iterable<T>, Collection<T>, List<T>, RandomAccess
- Direct Known Subclasses:
- PathHelper.FilePath
public abstract class VirtualList<T>
- extends Object
- implements List<T>, RandomAccess
Klasa abstrakcyjna ułatwiająca wygodne tworzenie "wirtualnych" list. Poniższa
implementacja stara się minimalizować ilość wywołań metody get(int),
zakładając, że operacje odczytu są kosztowne - jednak nie realizuje żadnego
rodzaju buforowania.
Domyślnie lista nie pozwala na modyfikacje. Aby stworzyć listę pozwalającą na
modyfikacje należy przeładować metody:
- Author:
- ranides
VirtualList
public VirtualList()
size
public abstract int size()
- Specified by:
size in interface Collection<T>- Specified by:
size in interface List<T>
get
public abstract T get(int index)
- Specified by:
get in interface List<T>
add
public void add(int index,
T element)
- Specified by:
add in interface List<T>
set
public T set(int index,
T element)
- Specified by:
set in interface List<T>
remove
public T remove(int index)
- Specified by:
remove in interface List<T>
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty in interface Collection<T>- Specified by:
isEmpty in interface List<T>
contains
public boolean contains(Object value)
- Specified by:
contains in interface Collection<T>- Specified by:
contains in interface List<T>
iterator
public Iterator<T> iterator()
- Specified by:
iterator in interface Iterable<T>- Specified by:
iterator in interface Collection<T>- Specified by:
iterator in interface List<T>
toArray
public Object[] toArray()
- Specified by:
toArray in interface Collection<T>- Specified by:
toArray in interface List<T>
toArray
public <T> T[] toArray(T[] target)
- Specified by:
toArray in interface Collection<T>- Specified by:
toArray in interface List<T>
add
public boolean add(T value)
- Specified by:
add in interface Collection<T>- Specified by:
add in interface List<T>
containsAll
public boolean containsAll(Collection<?> values)
- Specified by:
containsAll in interface Collection<T>- Specified by:
containsAll in interface List<T>
addAll
public boolean addAll(Collection<? extends T> values)
- Specified by:
addAll in interface Collection<T>- Specified by:
addAll in interface List<T>
addAll
public boolean addAll(int index,
Collection<? extends T> values)
- Specified by:
addAll in interface List<T>
remove
public boolean remove(Object value)
- Specified by:
remove in interface Collection<T>- Specified by:
remove in interface List<T>
removeAll
public boolean removeAll(Collection<?> values)
- Specified by:
removeAll in interface Collection<T>- Specified by:
removeAll in interface List<T>
retainAll
public boolean retainAll(Collection<?> values)
- Specified by:
retainAll in interface Collection<T>- Specified by:
retainAll in interface List<T>
clear
public void clear()
- Specified by:
clear in interface Collection<T>- Specified by:
clear in interface List<T>
indexOf
public int indexOf(Object value)
- Specified by:
indexOf in interface List<T>
lastIndexOf
public int lastIndexOf(Object value)
- Specified by:
lastIndexOf in interface List<T>
listIterator
public ListIterator<T> listIterator()
- Specified by:
listIterator in interface List<T>
listIterator
public ListIterator<T> listIterator(int index)
- Specified by:
listIterator in interface List<T>
subList
public List<T> subList(int fromIndex,
int toIndex)
- Specified by:
subList in interface List<T>
subList
public static <Q> List<Q> subList(List<Q> list,
int from,
int to)
- Statyczna metoda, która z podanej listy wskazany zakres. Użyteczna dla
twórców własnych implementacji list, którzy chcą uniknąć pisania własnej
klasy sub-listującej, której jedynym zadaniem jest przeliczanie wszystkich
indeksów.
Metoda prawidłowo rozpoznaje, czy źródło implementuje RandomAccess i
na tej podstawie zwraca listę, która również ten interfejs implementuje lub nie.
- Type Parameters:
Q - - Parameters:
list - lista źródłowafrom - indeks początku listy (włącznie)to - indeks końca listy (wyłącznie)
- Returns:
Copyright © 2013. All Rights Reserved.