Java学习笔记08_(集合框架)

集合框架概述

在这里插入图片描述
虚线是接口
实线是实现类

Collection 接口 : 用于存储单个对象的集合。
List 接口
1.有序的
2.允许多个Null
3.具体的实现类常用的 :ArrayList Vextor LinkedList
Set接口:

//使用集合来存储多个不同类型的元素 (对象),处理时比较麻烦。
//我们应该在一个集合存储相同类型的对象
List list =new Arrays<>();

遍历集合
int size = list.size(); //方法在栈中 效率高。
for(int i = 1;i<size;i++){
syso list.get(i);}

conrains(object o)
如果列表中包含指定的元素,则返回True;
list.toArray

集合框架List接口

List 接口的大小可变数组的实现。实现了所有可选列表操作。
ArrayList
1.实现原理 ,采用动态对象数组实现,默认构造方法创建了一个空数组。
2.第一次添加元素 扩充容量10,之后的扩充算法? 原来数组大小+原来数组的一半
3.不适合进行删除或者插入操作。
4.为了防止数组动态扩容过多,建议创建ArrayList时,给定初始容量
5.线程不安全,适合在单线程访问时使用
JDK1.2开始使用。

ArrayList的遍历

三种遍历方式 for \ for-each \ iterator
1.for
2.for -each
3.Iterator it = list.iterator();
while(it.hasNest){
String elem=(String)it.next();
LinkedList
1.实现原理 采用双向链表结构实现
2.适合插入 删除操作 性能高

在实际开发中 如何选择LIST的具体实现

1.安全性问题
list 不要考虑
2.是否频繁插入 删除操作
建议LinkedList 性能高
3.是否是存储后遍历。
ArrayList
面试题
自己实现一个ArrayList
动态List

List 和 Collection 的关系和区别
public int
List 有序 Collection 无序 增加了 位置/ 索引 相关的操作方法。

底层区别很大
list.add(3,“Servlet”);
ArrayList 需要大量的后移元素 数组 顺序表结构
LinkedList 需要找到指定的位置 ,然后修改元素的引用
链表结构

Set 集合的分类和特点
Set 无序 唯一
HashSet
采用Hashtable 哈希表存储结构
HasMap实现
不保证顺序 恒久不变
优点 添加速度快 查询速度快 删除速度快
缺点 无序
添加元素时 把元素作为 HashMap的Key存储 ,HashMap的value使用一个固定的Obj对象。
排除重复元素是通过
equal 来检查是否相同。
set不包含满足 e1.equals(e2) 的元素对e1和e2 , 并且最多包含一个NUll元素。此接口模仿了数学的Set抽象

LinkedHashSet
采用哈希表存储结构 同时使用链表维护次序
有序 (添加顺序)
TreeSET
采用二叉树 的存储结构
优点 有序 查询速度比List快 (按内容查询)
缺点 查询速度没有Hashset快

数组加链表的实现 ---- 哈希表

在这里插入图片描述
在这里插入图片描述
ATM实例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
 aa
在这里插入图片描述
在这里插入图片描述
instanceof
在这里插入图片描述
泛型
增加数据重用性
在这里插入图片描述在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值