- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- javafx.collections.ObservableListBase<E>
-
- javafx.collections.ModifiableObservableListBase<E>
-
- 参数类型
-
E
- 列表中包含的元素的类型
- All Implemented Interfaces:
-
Iterable<E>
,Collection<E>
,List<E>
,Observable
,ObservableList<E>
public abstract class ModifiableObservableListBase<E> extends ObservableListBase<E>
抽象类,可作为可修改的ObservableList
实现的基类。 要实现一个可修改的ObservableList
类,您只需要实现以下一组方法: 和通知,并为您自动建立和发射。一个简单的
ObservableList
委托给另一个List
将如下所示:public class ArrayObservableList<E> extends ModifiableObservableList<E> { private final List<E> delegate = new ArrayList<>(); public E get(int index) { return delegate.get(index); } public int size() { return delegate.size(); } protected void doAdd(int index, E element) { delegate.add(index, element); } protected E doSet(int index, E element) { return delegate.set(index, element); } protected E doRemove(int index) { return delegate.remove(index); }
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
ObservableListBase
-
-
Field Summary
-
Fields inherited from class java.util.AbstractList
modCount
-
-
构造方法摘要
构造方法 Constructor 描述 ModifiableObservableListBase()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 void
add(int index, E element)
将指定的元素插入此列表中的指定位置(可选操作)。boolean
addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。boolean
addAll(Collection<? extends E> c)
将指定集合中的所有元素添加到此集合(可选操作)。protected abstract void
doAdd(int index, E element)
将element
添加到列表中,位置为index
。protected abstract E
doRemove(int index)
删除index
位置的index
。protected abstract E
doSet(int index, E element)
设置element
在的位置的列表index
。abstract E
get(int index)
返回此列表中指定位置的元素。E
remove(int index)
删除该列表中指定位置的元素(可选操作)。boolean
remove(Object o)
从该集合中删除指定元素的单个实例(如果存在)(可选操作)。boolean
removeAll(Collection<?> c)
删除指定集合中包含的所有此集合的元素(可选操作)。protected void
removeRange(int fromIndex, int toIndex)
从此列表中删除索引为fromIndex
(含)和toIndex
之间的所有元素。boolean
retainAll(Collection<?> c)
仅保留此集合中包含在指定集合中的元素(可选操作)。E
set(int index, E element)
用指定的元素(可选操作)替换此列表中指定位置的元素。boolean
setAll(Collection<? extends E> col)
清除ObservableList并添加集合中的所有元素。abstract int
size()
返回此集合中的元素数。List<E>
subList(int fromIndex, int toIndex)
返回指定的fromIndex
(含)和toIndex
之间的列表部分的视图。-
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, toArray, toArray, toString
-
Methods inherited from class java.util.AbstractList
add, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
Methods inherited from interface java.util.List
add, clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, of, of, of, of, of, of, of, of, of, of, of, of, replaceAll, sort, spliterator, toArray, toArray
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface javafx.collections.ObservableList
filtered, sorted, sorted
-
Methods inherited from class javafx.collections.ObservableListBase
addAll, addListener, addListener, beginChange, endChange, fireChange, hasListeners, nextAdd, nextPermutation, nextRemove, nextRemove, nextReplace, nextSet, nextUpdate, remove, removeAll, removeListener, removeListener, retainAll, setAll
-
-
-
-
方法详细信息
-
setAll
public boolean setAll(Collection<? extends E> col)
描述从接口ObservableList
复制清除ObservableList并添加集合中的所有元素。- Specified by:
-
setAll
在接口ObservableList<E>
- 重写:
-
setAll
在ObservableListBase<E>
- 参数
-
col
- 将添加到此observableArrayList的元素的集合 - 结果
- true(由Collection.add(E)指定)
-
addAll
public boolean addAll(Collection<? extends E> c)
描述从类别复制:AbstractCollection
将指定集合中的所有元素添加到此集合(可选操作)。 如果在操作进行中修改了指定的集合,则此操作的行为是未定义的。 (这意味着如果指定的集合是此集合,此调用的行为是未定义的,并且此集合是非空的。)- Specified by:
-
addAll
在接口Collection<E>
- Specified by:
-
addAll
在接口List<E>
- 重写:
-
addAll
在AbstractCollection<E>
- 参数
-
c
- 包含要添加到此集合的元素的集合 - 结果
-
true
如果该收集因呼叫而更改 - 另请参见:
-
AbstractCollection.add(Object)
-
addAll
public boolean addAll(int index, Collection<? extends E> c)
描述从类别复制:AbstractList
将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。 将当前位于该位置(如果有的话)的元素和随后的任何元素移动到右边(增加其索引)。 新元素将按照指定集合的迭代器返回的顺序显示在此列表中。 如果在操作进行中修改了指定的集合,则此操作的行为是未定义的。 (注意,如果指定的集合是此列表,并且它是非空的,则会发生这种情况。)
-
removeRange
protected void removeRange(int fromIndex, int toIndex)
描述从类别复制:AbstractList
从此列表中删除所有索引为fromIndex
(包括)和toIndex
之间的元素。 将任何后续元素移动到左侧(减少其索引)。 这个电话缩小了(toIndex - fromIndex)
元素的列表。 (如果是toIndex==fromIndex
,这个操作没有效果)此方法由该列表及其子列表中的
clear
操作调用。 覆盖此方法以利用列表实现的内部结构可以大大提高此列表及其子列表中的clear
操作的性能。- 重写:
-
removeRange
在AbstractList<E>
- 参数
-
fromIndex
- 要删除的第一个元素的索引 -
toIndex
- 要删除的最后一个元素后的索引
-
removeAll
public boolean removeAll(Collection<?> c)
说明从类别复制:AbstractCollection
删除指定集合中包含的所有此集合的元素(可选操作)。 此调用返回后,此集合将不包含与指定集合相同的元素。- Specified by:
-
removeAll
在接口Collection<E>
- Specified by:
-
removeAll
在接口List<E>
- 重写:
-
removeAll
在AbstractCollection<E>
- 参数
-
c
- 包含要从此集合中删除的元素的集合 - 结果
-
true
如果该收集因呼叫而更改 - 另请参见:
-
AbstractCollection.remove(Object)
,AbstractCollection.contains(Object)
-
retainAll
public boolean retainAll(Collection<?> c)
描述从类复制:AbstractCollection
仅保留此集合中包含在指定集合中的元素(可选操作)。 换句话说,从该集合中删除所有不包含在指定集合中的元素。- Specified by:
-
retainAll
在接口Collection<E>
- Specified by:
-
retainAll
接口List<E>
- 重写:
-
retainAll
在AbstractCollection<E>
- 参数
-
c
- 包含要保留在此集合中的元素的集合 - 结果
-
true
如果此集合由于调用而更改 - 另请参见:
-
AbstractCollection.remove(Object)
,AbstractCollection.contains(Object)
-
add
public void add(int index, E element)
描述从类别复制:AbstractList
将指定的元素插入此列表中的指定位置(可选操作)。 将当前位于该位置的元素(如果有)和任何后续元素(向其索引添加一个)移动。
-
set
public E set(int index, E element)
描述从类复制:AbstractList
用指定的元素(可选操作)替换此列表中指定位置的元素。
-
remove
public boolean remove(Object o)
描述从类复制:AbstractCollection
从该集合中删除指定元素的单个实例(如果存在)(可选操作)。 更正式地,删除元素e
,使得Objects.equals(o, e)
,如果该集合包含一个或多个这样的元素。 如果此集合包含指定的元素(或等效地,如果此集合由于调用而更改),则返回true
。- Specified by:
-
remove
在接口Collection<E>
- Specified by:
-
remove
在接口List<E>
- 重写:
-
remove
在AbstractCollection<E>
- 参数
-
o
- 要从此集合中删除的元素(如果存在) - 结果
-
true
如果元素被删除作为此调用的结果
-
remove
public E remove(int index)
描述从类复制:AbstractList
删除该列表中指定位置的元素(可选操作)。 将任何后续元素移动到左侧(从其索引中减去一个元素)。 返回从列表中删除的元素。
-
subList
public List<E> subList(int fromIndex, int toIndex)
说明从类别复制:AbstractList
返回指定的fromIndex
(含)和toIndex
之间的列表部分的视图。 (如果fromIndex
和toIndex
相等,返回的列表为空。)返回的列表由此列表支持,因此返回列表中的非结构性更改将反映在此列表中,反之亦然。 返回的列表支持此列表支持的所有可选列表操作。该方法消除了对显式范围操作(对于数组通常存在的排序)的需要。 任何期望列表的操作都可以通过传递一个子列表视图而不是整个列表来用作范围操作。 例如,以下成语从列表中移除了一系列元素:
list.subList(from, to).clear();
indexOf
和lastIndexOf
构造类似的成语,并且Collections
类中的所有算法都可以应用于子列表。如果支持列表(即,此列表)以除了通过返回的列表之外的任何方式进行结构修改 ,则此方法返回的列表的语义将变为未定义。 (结构修改是那些改变此列表的大小,或以其他方式扰乱它,使得正在进行的迭代可能产生不正确的结果)。
-
get
public abstract E get(int index)
描述从类复制:AbstractList
返回此列表中指定位置的元素。
-
size
public abstract int size()
说明从接口Collection
复制返回此集合中的元素数。 如果这个集合包含Integer.MAX_VALUE
元素,返回Integer.MAX_VALUE
。- Specified by:
-
size
在接口Collection<E>
- Specified by:
-
size
在接口List<E>
- Specified by:
-
size
在AbstractCollection<E>
- 结果
- 此集合中的元素数
-
doAdd
protected abstract void doAdd(int index, E element)
将element
添加到列表中,位置为index
。有关可能的例外的描述,请参阅
AbstractList.add(java.lang.Object)
方法的文档。- 参数
-
index
- 添加元素的位置 -
element
- 要添加的元素 - 异常
-
ClassCastException
- 如果指定的元素的类型与此列表不兼容 -
NullPointerException
- 如果指定的参数包含一个或多个空元素 -
IllegalArgumentException
- 如果此元素的某些属性阻止将其添加到此列表 -
IndexOutOfBoundsException
- 如果索引超出范围(index < 0 || index > size())
-
doSet
protected abstract E doSet(int index, E element)
设置element
在的位置的列表index
。有关可能的异常的描述,请参阅
set(int, java.lang.Object)
方法的文档。- 参数
-
index
- 设置元素的位置 -
element
- 将在指定位置设置的元素 - 结果
- 老元素在指定位置
- 异常
-
ClassCastException
- 如果指定的元素的类型与此列表不兼容 -
NullPointerException
- 如果指定的参数包含一个或多个空元素 -
IllegalArgumentException
- 如果此元素的某些属性阻止将其添加到此列表 -
IndexOutOfBoundsException
- 如果索引超出范围(index < 0 || index >= size())
-
doRemove
protected abstract E doRemove(int index)
删除index
位置的index
。- 参数
-
index
- 已删除元素的索引 - 结果
- 删除的元素
- 异常
-
IndexOutOfBoundsException
- if the index is out of range(index < 0 || index >= size())
-
-