集合框架——使用Java面向对象编程

第六章 集合框架——Java OOP

1.为什么使用集合框架

  • 数组长度固定不变,不能很好地适应元素数量动态变化的情况。

  • 课通过数组名**.length**获取数组的长度,取无法直接获取数组中真实存储的个数。

  • 数组采用在内存中分配连续空间的存储方式,根据下标可以快速获取对应的信息,但根据信息查找时效率低下,需要多次比较。在进行频繁插入、删除操作时同样效率低下

2.Java集合框架包含的内容

集合框架是为表示和操作借还而规定的一种统一的标准结构体系。集合框架都包含三大块内容:对外的接口,接口的实现和对集合运算的算法。

  • 接口:表示集合的抽象类数据类型。
  • 实现:集合框架中接口的具体实现。
  • 算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法

Java集合框架中的两大类的接口:CollectionMap

  • Collection 接口可以存储一组不唯一,无序的对象
    • Set 接口继承 Collection 接口,存储一组唯一、无序的对象。
    • List 接口继承 Collection 接口,存储一组不唯一、有序的对象
  • Map 接口存储一组成对的键-值对象,提供 key(键)value(值) 的映射。Map 中的 key 不要求有序,不允许重复。 value 同样不要求有序,但运行重复。
  • lterator 接口负责定义访问和遍历元素的接口。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YU04EEUr-1622194904656)(img\image-20210528165408509.png)]

3.List接口

  • 实现List接口的常用类有 ArrayListLinkedList 。他们都可以容纳所有类型的对象,包括null,允许重复,并且都包子元素的存储顺序。

(1)LinkedList采用链表存储方式,有点在与插入,删除元素是效率比较高。

方法说明
void addFirst(Object o)在列表的首部添加元素
void addLast(Object o)在列表的末尾添加元素
Object getFirst()返回列表中的第一个元素
Object getLast()返回列表中的最后一个元素
Object removeFirst()删除并返回列表中的第一个元素
Object removeLast()删除并返回列表中的最后一个元素

(2)ArrayList集合类

方法名说明
boolean add(Object o)在列表的末尾顺序添加元素,起始索引位置从0开始
void add(int index,Object o)在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间
int size()返回列表中的元素个数
Object get(int index)返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换
boolean contains(Object o)判断列表中是否存在指定元素
boolean remove(Object o)从列表中删除元素
Object remove(int index)从列表中删除指定位置元素,起始索引位置从0开始

List接口的 add(Object o) 方法的参数类型是 Object ,即使在调用时形参是插入时的类型,但系统认为是 Object ,所以在 get() 获取必需强转。

4.Map接口

1.Map接口常用方法
方法名说明
Object put(Object key, Object val)以“键-值对”的方式进行存储
Object get (Object key)根据键返回相关联的值,如果不存在指定的键,返回null
Object remove (Object key)删除由指定的键映射的“键-值对”
int size()返回元素个数
Set keySet ()返回键的集合
Collection values ()返回值的集合
boolean containsKey (Object key)如果存在由指定的键映射的“键-值对”,返回true
2.迭代器Iterator

Collection 接口的iterator()方法返回一个 Iterator ,然后通过 Iterator 接口的两个方法即可方便的实现遍历

boolean hasNext(); //判断是否存在另一个可访问的元素
Object next();	   //返回要访问的下一个元素

增强for循环

for(元素类型t  元素变量x : 数组或集合对象){
         引用了x的java语句
}
5.泛型集合

如何解决以下强制类型转换时容易出现的异常问题?

List get(int index)方法获取元素
Map get(Object key)方法获取元素
Iterator next()方法获取元素

4.总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-55pB8jLa-1622194904660)(img\image-20210528173959317.png)]
(Object key)方法获取元素
Iterator next()方法获取元素


## 4.总结

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210604090023708.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xJTjdfSg==,size_16,color_FFFFFF,t_70)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾拾柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值