2020-06-23集合进阶(Collection,List))
作者:
智障猿 | 来源:发表于
2020-06-28 09:51 被阅读0次
集合知识回顾
- 特定:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
-
集合类体系结构
集合类体系结构.png
Collection接口
- 概述
①Collection集合是单列集合的顶层接口,它表示一组可重复的对象,这些对象也被称为Collection的元素。
②JDK不提供此接口的任何直接实现,它提供更加具体的子接口(Set和List)实现
- 创建Collection对象
①多态的方式
②具体的实现类ArrayList
- Collection集合的常用方法
方法名 |
说明 |
boolean add(E e) |
添加元素 |
boolean remove(Object o) |
从集合中移除指定的元素 |
void clear() |
清空集合中的元素 |
Boolean contains(Object o) |
判断集合中是否存在指定的元素 |
boolean isEmpty() |
判断集合是否为空 |
int size() |
集合的长度 |
Iterator<E> iterator() |
返回集合中元素的迭代器 |
Collection集合的遍历
- Iterator:迭代器,集合的专用遍历方式
- Iterator接口中的方法
方法 |
说明 |
E next() |
返回迭代中的下一个元素 |
boolean hasNext() |
如果迭代具有更多元素,则返回true |
Collection<String> c = new ArrayList<>();
Iterator it=c.iterator();//返回的是一个内部类的实例化对象,赋值个接口,用到了接口多态
it.next()
it.hasnext()
- 并发修改异常(ConcurrentModificationException)
产生原因:迭代器在遍历过程中,通过集合对象修改集合中的元素,造成了迭代器(next方法中)获取元素中判断预期修改值和实际修改值不一致
解决方案:使用for循环操作
List集合
- 概述
①有序(index)集合,用户可以精确控制列表中每个元素的插入位置,用户可以通过整个整数索引访问元素,并搜索列表中的元素。
②与Set集合的不同,列表通常允许重复的元素。
- 特点
①有序:存储和取出的元素顺序一致
②可重复:存储的元素可以重复
- 与Collection相比List特有的方法
方法名 |
说明 |
void add(int index,E element) |
在此集合中的指定位置插入指定的元素 |
E remove(int index) |
删除指定索引处的元素,返回被删除的元素 |
E set(int index,E element) |
修改指定索引处的元素,返回被修改的元素 |
E get(int index) |
返回指定索引处的元素 |
- 特点:允许程序员沿任意方向遍历列表的列表迭代器,可以在迭代期间修改列表,并获取列表中迭代器的当前位置。
- 方法——与Iterator相比补充了以下方法
方法名 |
说明 |
hasPrevious |
如果此列表迭代器向前方向遍历列表时具有更多元素,则返回true |
previous |
返回列表中的上一个元素,并向后移动光标位置 |
add |
通过迭代器向列表中添加元素 |
list集合子类特点
- ArrayList:底层数据结构是数组,查询快,增删慢
- LinkedList:底层数据结构是链表,查询慢,增删快
linkedList集合的特有功能
方法名 |
说明 |
public void addFirst(E e) |
在该链表的开头插入指定的元素 |
public void addLast(E e) |
将指定元素追加到列表的末尾 |
public E getFirst() |
返回此列表中的第一个元素 |
public E getLast() |
返回此列表中的最后一个元素 |
public E removeFirst() |
从此列表中删除并返回第一个元素 |
public E removeLast() |
从此列表中删除并返回最后一个元素 |
本文标题:2020-06-23集合进阶(Collection,List))
本文链接:https://www.haomeiwen.com/subject/lkghfktx.html
网友评论