一、基本概念
- 容器类类库的用途是保存对象
1、Collection:一个独立元素的序列
2、Map:一组成对的“键值对”对象,允许你用键来查找值。映射表,允许我们用另一个对象来查找某个对象,它也被称为关联数组。 - 集合方法Collection
1、添加
boolean add(E e) 添加1个
boolean addAll(collection<? extends E> c) 添加指定容器中的所有元素
2、删除
void clear() 清空所有
boolean remove(Object o) 删除一个
boolean removeAll(collection<? extends E> c) 删除指定容器中的所有元素
boolean retainAll(collection<? extends E> c) 移除指定容器中不同的元素
3、获取长度
int size()
4、判断
boolean isEmpty() 是否为空
boolean contains(Object o) 包含某个元素
boolean containsAll(Collection<? extends E> c)包含某个指定容器中的元素
5、将集合转成数组
Object[] toArray()
6、取出集合元素
Iterator iterator()
获取集合中元素上迭代功能的迭代器对象
迭代:取出元素的一种方式
迭代器:具备迭代功能的对象。NoSuchElementException
迭代器是取出Collection集合元素的公共方式
二、List(有序的Collection)
- List<E>特有的方法(围绕索引来定义)
1、添加元素
void add(int index, E element) 在List指定位置添加元素
void addAll(int index, Collection<? extends E> c)
2、获取元素
E get(int index) 获取元素
List<E> subList(int fromIndex, int toIndex) 获取指定位置之间的元素
3、删除
boolean remove(int index) 移除列表指定位置的元素
4、修改
E set(int index, E element) 用指定元素替换列表中指定位置的元素
5、获取索引
int indexOf(Object o) 获取第一次出现指定元素的索引
int lastIndexOf(Object o) 获取最后一次出现指定元素的索引
6、取出集合元素
ListIterator listIterator(int n) 指定返回第一个元素的索引值
- List承诺可以讲元素维护在特定的序列中。可以对List中每个元素的插入位置进行精确控制。
- 1、ArrayList,长于随机访问元素,但进行插入和移除操作时较慢
2、LinkedList,通过较低代价的在List中进行插入和删除操作,提供了优化的顺序访问。功能较强。
三、迭代器
- 迭代器设计模式:迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象。
迭代器通常被称为轻量级对象,创建它的代价小 - 使用迭代器:
1、使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素
2、使用next()获得序列的下一个元素
3、使用hasNext()检查序列中是否还有元素
4、使用remove()将迭代器新近返回的元素删除
- 特殊的迭代器 ListIterator<E>,可以双向移动
新增方法
void add(E e) 插入元素
boolean hasPrevious() 逆向遍历
int nextIndex() 返回对next后续调用元素索引
int previousIndex() 返回对previous后续调用元素索引
E previous() 返回列表前一个元素
void set(E e) 用指定元素替换返回的元素
四、LinkedList<E>
- LinkedList,通过较低代价的在List中进行插入和删除操作,提供了优化的顺序访问。功能较强。
添加了可以使其用作栈、队列、或双端队列的方法。
新增方法
1、添加元素
void addFirst(E e) 将指定元素插入此列表开头
void addLast(E e) 将指定元素插入此列表结尾
boolean offerFirst(E e) 在此列表开头插入指定元素
boolean offerLast(E e) 在此列表结尾插入指定元素
2、获取元素
E getFirest(); 返回列表的第一个元素
E getLast(); 返回列表的最后一个元素
3、删除元素
E removeFirst() 移除并返回列表第一个元素
E removeLast() 移除并返回列表最后一个元素
boolean removeFirstOccurrence(Object o) 移除此列表第一次出现的指定元素
boolean removeLastOccurrence(Object o) 移除此列表最后一次出现的指定元素
4、Queue集合的方法
E element(); 返回列表的第一个元素
boolean offer(E e); 将指定元素添加到列表的末尾
E peek(); 同 element(),但是在列表为空时返回null
E poll(); 同remove(), 移除并返回列表第一个元素,但是在列表为空时返回null
5、迭代器
五、Set<E>
- Set不保存重复的元素,它会阻止这一现象。
Set常用来测试归属性,可以很容易的询问某个对象是否在Set中,所以查找成为了Set中最重要测操作。
HashSet,专门对快速查找进行了优化 - Set就是Collection,只是行为不同。Set是基于对象的值来确定归属性的。
六、Map<K,V>
- 将对象映射到其他对象的能力是一种解决编程问题的杀手锏。
Map<K,V>基本方法
1、取值
V get(Object key); 返回指定键所对应的值
Set<K> keySet(); 返回此映射中包含的 键 的Set视图
Set<Map.Entry<K,V>> entrySet(); 返回此映射中包含的映射关系的Set视图
Collection<V> values(); 返回此映射中包含值的Collection视图
2、关联
V put(K key, V value)将指定的键与值关联
void putAll(Map, m) 从Map中复制映射
3、删除映射关系
V remove(Object k) 删除指定键的映射关系
4、总数
int size()
5、判断
boolean containsKey(Object Key)
boolean containsValue(Object Key)