集合
1.1 集合体系树
//1. Collection
/ \
List Set
/ \ |
ArrayList LinkedList HashSet
//2.
Map
/ | \
HashMap TreeMap HashTable
1、Collection 接口:单列集合,用来存储一个一个的对象
2、list接口,存储有序的,可重复的数据。–>“动态"数组,替换原有的数组
3、ArrayList:作为List接口的主要实现类:线程不安全的,效率高;底层使用Object[]elementData存储
4、LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用双向链表存储
5、Vector:作为list接口的古老实现类;线程安全的,效率低:底层使用Object[]elementData存储
java集合框架包含的内容
java集合框架提供了一套性能优良、使用方便的接口和类,他们位于java.util包中
ArrayList
范式:类型 名字 =new 类型();
增加:
1、add(Object o)
2、对于任意创建的一个ArrayList 集合对象而言,可以无限调用add()
3、按顺序插入
删除:
1、remove();
2、remove();删除下表所代表元素或者直接删除元素
修改:
1、set(int index,Object o);
2、调用set();需要按照形参约定给传入两个数据(下标,修改后的元素)
查找:
1、查全部
2、查一个(获取一个)
get()
数量:
size()
泛型
创建集合的范式(最终版)
集合类型<泛型类型> 集合名称 =new 集合类型 <泛型类型>();
1、泛型类型必须是引用数据类型(包装类)
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | integer |
long | Long |
float | Float |
double | Double |
char | character |
boolean | Boolean |
3、ArrayList方法的扩展
1、indexOf() 查询并返回目标元素在集合中位置,不存在返回-1
2、contains() 判断目标元素是否存在于集合中,存在放回true
3、toArray()将集合转为对应类型的数组
4、equals()比较两个集合是否相同
5、hashCode() 源于对象在堆中存储的地址
6、构造器重载
1、无参
2、ArrayList(int length)创建一个指定长度的集合
3、ArrayList(Collection list) 以一个已有的集合对象创建一个新的集合对象 (复制)
LinkedList方法的扩展
1、clear() 清除所有元素
2、实现自Queue 的部分方法 (以 p 开头的方法)
3、构造器
LinkedList()
构造一个空列表。
LinkedList(Collection<? extends E> c)
构造一个包含指定集合的元素的列表,它们在集合的迭代器返回的顺序中返回。
补充ArrayList方法:(前面返回值,后面具体方法)
boolean add(E e)
将指定的元素列表的结束。
void add(int index, E element)
在列表中指定的位置上插入指定的元素。
boolean addAll(Collection<? extends E> c)
追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。
boolean addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到该列表中,从指定位置开始。
void clear()
从这个列表中移除所有的元素。
Object clone()
返回该 ArrayList实例浅拷贝。
boolean contains(Object o)
返回 true如果这个列表包含指定元素。
void ensureCapacity(int minCapacity)
增加这 ArrayList实例的能力如果有必要,以确保它至少能容纳的最小容量参数指定元素个数。
void forEach(Consumer<? super E> action)
执行特定动作的每一个元素的 Iterable直到所有元素都被处理或操作抛出异常。
E get(int index)
返回此列表中指定位置的元素。
int indexOf(Object o)
返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。
boolean isEmpty()
返回 true如果此列表不包含元素。
Iterator iterator()
在这个列表中的元素上返回一个正确的顺序。
int lastIndexOf(Object o)
返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。
ListIterator listIterator()
返回列表元素的列表迭代器(在适当的顺序)。
ListIterator listIterator(int index)
在列表中的元素上返回列表迭代器(在适当的顺序),从列表中的指定位置开始。
E remove(int index)
移除此列表中指定位置的元素。
boolean remove(Object o)
从该列表中移除指定元素的第一个发生,如果它是存在的。
boolean removeAll(Collection<?> c)
从这个列表中移除包含在指定集合中的所有元素。
boolean removeIf(Predicate<? super E> filter)
删除满足给定谓词的这个集合的所有元素。
protected void removeRange(int fromIndex, int toIndex)
从列表中删除所有的元素的索引 fromIndex之间,包容性,和 toIndex,独家。
void replaceAll(UnaryOperator operator)
用将运算符应用到该元素的结果替换此列表中的每个元素。
boolean retainAll(Collection<?> c)
仅保留包含在指定集合中的列表中的元素。
E set(int index, E element)
用指定元素替换此列表中指定位置的元素。
int size()
返回此列表中元素的数目。
void sort(Comparator<? super E> c)
分类列表使用提供的 Comparator比较元素。
Spliterator spliterator()
创建一个后期绑定和快速失败 Spliterator超过此列表中的元素。
List subList(int fromIndex, int toIndex)
返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
Object[] toArray()
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
T[] toArray(T[] a)
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。
void trimToSize()
装饰这 ArrayList实例是列表的当前容量。
补充LinkedList方法:(前面返回值,后面具体方法)
boolean add(E e)
将指定的元素列表的结束。
void add(int index, E element)
在列表中指定的位置上插入指定的元素。
boolean addAll(Collection<? extends E> c)
追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。
boolean addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到该列表中,从指定位置开始。
void addFirst(E e)
在此列表的开始处插入指定的元素。
void addLast(E e)
将指定的元素列表的结束。
void clear()
从这个列表中移除所有的元素。
Object clone()
返回该 LinkedList浅拷贝。
boolean contains(Object o)
返回 true如果这个列表包含指定元素。
Iterator descendingIterator()
返回在反向顺序在deque容器元素的迭代器。
E element()
检索,但不删除,此列表的头(第一个元素)。
E get(int index)
返回此列表中指定位置的元素。
E getFirst()
返回此列表中的第一个元素。
E getLast()
返回此列表中的最后一个元素。
int indexOf(Object o)
返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。
int lastIndexOf(Object o)
返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。
ListIterator listIterator(int index)
返回此列表中元素的列表迭代器(在适当的顺序),从列表中的指定位置开始。
boolean offer(E e)
将指定的元素添加到列表的尾部(最后一个元素)。
boolean offerFirst(E e)
在列表的前面插入指定的元素。
boolean offerLast(E e)
在列表的结尾插入指定的元素。
E peek()
检索,但不删除,此列表的头(第一个元素)。
E peekFirst()
检索,但不删除该列表的第一个元素,或返回 null如果这个列表是空的。
E peekLast()
检索,但不删除该列表的最后一个元素,或返回 null如果这个列表是空的。
E poll()
检索并删除此列表的头(第一个元素)。
E pollFirst()
检索并移除此列表的第一个元素,或返回 null如果这个列表是空的。
E pollLast()
检索并移除此列表的最后一个元素,或返回 null如果这个列表是空的。
E pop()
从这个列表所表示的堆栈中弹出一个元素。
void push(E e)
将一个元素推到由该列表所表示的堆栈上。
E remove()
检索并删除此列表的头(第一个元素)。
E remove(int index)
移除此列表中指定位置的元素。
boolean remove(Object o)
从该列表中移除指定元素的第一个发生,如果它是存在的。
E removeFirst()
移除并返回此列表中的第一个元素。
boolean removeFirstOccurrence(Object o)
删除此列表中指定元素的第一个出现(当遍历从头到尾的列表)。
E removeLast()
移除并返回此列表中的最后一个元素。
boolean removeLastOccurrence(Object o)
删除此列表中指定元素的最后一次(当遍历从头到尾的列表时)。
E set(int index, E element)
用指定元素替换此列表中指定位置的元素。
int size()
返回此列表中元素的数目。
Spliterator spliterator()
创建一个后期绑定和快速失败 Spliterator超过此列表中的元素。
Object[] toArray()
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
T[] toArray(T[] a)
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。