11.集合框架

集合框架

概念:

提供了一系列对于批量数据的存储和处理方案

类似于数组 都只是存储对象的容器

数组:长度固定(手动扩容) 只能存储相同类型(多态)

集合:自动扩容 可以存储不同类型

框架结构

Collection (Collections提供了一套对于集合的操作方法 Connection连接) 父接口

​ 所有单列集合所具备的方法

​ List 有序集合 子接口

​ 重点研究业务:比较器

​ 特点:存储顺序与展示顺序一致 有下标索引概念 可以使用普通for循环遍历 允许存储重复数据

​ ArrayList:类似于数组的一种集合结构 最常用的集合 查询快 增删慢 需要创建新数组 需要移动元素

​ LinkedList:双链结构的集合 查询慢 增删快 从头开始查找

​ Vector:最老的集合结构 线程安全的集合

​ Set 无序集合 子接口

​ 重点研究业务:数据的去重

​ 特点:存储顺序与展示顺序不一致 没有下标 只能使用增强for循环(迭代器)不允许存储重复数据

​ HashSet:

​ LinkedHashSet:HashSet集合的子类 多了一根链条 可以保存存储顺序 但是依然没有索引下标

​ TreeSet:

Collection 父接口

​ boolean add(E e) 添加元素

​ boolean addAll(Collection) 添加一个集合

​ boolean remove(Object) 移除某个对象

​ boolean removeAll(Collection) 移除其中集合

​ boolean removeIf(Predicate filter) 有条件移除元素

​ void clear() 清除所有的元素

​ boolean contains(Object) 判断是否包含某个元素

​ Iterator iterator() 获取集合迭代器对象

​ int size() 获取元素个数(不是空间个数)

​ Object[] toArray() 将集合转为数组

迭代器 Iterator 用于所有的集合

boolean hasNext() 是否有下一个值

Object next() 获取下一个值

//1.获取当前集合的迭代器对象
Iterator iterator = names.iterator();
//2.循环判断是否还有元素
while(iterator.hasNext()) {
    //3.保存当前元素并输出
    Object o = iterator.next();
    System.out.print(o+" ");
}

for(Object o : names){
    System.out.print(o+" ");
}
双向迭代器 ListIterator 只能用于有序集合

boolean hasNext() 是否有下一个值

Object next() 获取下一个值

boolean hasPrevious() 判断是否有前一个值

Object previous() 获取前一个值

获取双向迭代器

ListIterator 有序集合.ListIterator() 默认指针在最左侧

ListIterator 有序集合.ListIterator(int num) 默认指针在num位

ArrayList al = new ArrayList();
al.add();
...
//通过有序集合引用名 获取其双向迭代器对象
ListIterator lt = al.listIterator(names.size());

//		//通过同一个迭代器对象的正向迭代方法 使指针停留在最后一个元素右侧
//		while(lt.hasNext()) {
//			lt.next();
//		}

//再次使用同一个迭代器对象 向左逆向迭代 集合中元素顺序没改变
while(lt.hasPrevious()) {
    Object o = lt.previous();
    System.out.print(o+" ");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值