集合

集合笔记

1、集合框架
与数组区别

数组长度固定、集合长度不固定

数组可存基本类型和引用类型,集合存引用类型

2、collection根接口

存储特点

存储有序、可重复的元素

存储整数值时,进行了装箱

常用操作

添加、清除、是否包含、是否为空、添加所有

遍历

增强for、迭代器、Iteror和Listertor

3、List子接口
存储特点

存储有序、可重复、有下标

具备Collection一致,新增:指定位置追加、获取下标元素等

遍历

基本for、增强for、迭代器、Itertor和ListIeror

4、三个实现类

ArrayList

存储方式:数组扩容

LineKdList

存储方式:双向链表

Vector

存储方式;数组扩容(少用,效率低,线程安全

¥ArrayList与LineK的List性能PK

查找:ArrayList块——连续的存储空间,有下标标记

向后追加:两者差不多,ArrayList稍快

指定位置追加:ArrayList的集合搬迁与LinkedList的定位(LINkedList)

指定位置删除:同上

结论:往往后续我们使用ArrayList更多,常用的操作基本都是查找,向后追加

5、泛型应用

概述

用于约束使用的类型,例如集合中约束String类型,只能存String

集合中泛型的应用

List中加泛型约束,约束存储的类型为Person
add时,只能添加Person对象,不能添加Integer,从源头上解决问题
迭代器遍历时,对应也是Person,拿到迭代对象时,不用强转

定义泛型

泛型类:在类后面加,在类的所有方法中都可使用约束类型

泛型接口:在接口后面加,在接口中所有抽象方法中都可使用

泛型方法:在权限后加,只能在当前方法中使用约束类型

ArrayLis与LinKendList PK性能

ArrayList:通过数组扩容方式存储(Vector数组扩容–加锁)
LinkedList:通过双向链表存储,空间不连续,需要上一个,或下一个去查找
因为数组是一块连续的内存空间,定位(查找)块
向后追加:add 两者都差不多性能ArrayList稍快
指定位置追加:add(1,“rr”);一般LinkedList快
指定位置删除:一般LinkedList快

结论:往往后续我们使用ArrayList更多,常用的操作基本都是查找,向后追加。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值