java数据结构之集合
Collection派生了三个子接口 List,Set,Queue
下面分别对派生子接口的实现类进行详解:
一:集合数据图
1.1 List实例化之ArrayList常用方法详解
**
1.size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
2.每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。**
常用方法 | 注释(注意集合必须先实例化) |
---|---|
boolean add(String e) | 添加元素到集合中 |
boolean add(int index,String e) | 在下标为index的位置添加e元素(注意下标从0开始) |
boolean addAll(Collection<? extends E> c) | 添加一个单列集合至当前集合中 |
boolean addAll(int index, Collection<? extends E> c) | 在下标为index的位置添加一个单列集合(注意下标从0开始) |
E set(int index, E element) | 在下标为index的位置替换旧的元素(注意下标越界) |
boolean remove(Object o) | 移除一个元素 |
E remove(int index) | 移除下标为index的元素 |
void clear() | 清空集合 |
E get(int index) | 获取下标为index的元素 |
int size() | 返回当前集合中元素个数 |
boolean isEmpty() | 判断集合中元素个数是否为0 |
boolean contains(Object element) | 判断集合中是否存在element元素 |
List subList(int fromIndex, int toIndex) | 截取集合,注意此方法不对原集合进行操作,调用此方法要赋值给新集合或者当前集合 |
int indexOf(Object o) | 获取o元素的下标,如果集合中无此元素返回-1 |
default void sort(Comparator<? super E> c) | 对集合进行排序,需实例化Comparator并重写compare()方法 |
default Stream parallelStream() | lamuda表达式JDK1.8之后才有此方法,获得一个并行对集合操作的流(stream()为串行流) |
toArray() | 转成一个Object数组 |