Java中的集合

目录一、集合概述1. 集合的概念和作用2. 集合的继承关系图二、Collection 部分1. Iterable 接口2. List 接口2.1 ArrayList2.2 LinkedList2.3 Vector2.4 Stack3. Set 接口3.1 HashSet3.2 TreeSet4. Queue 接口4.1 Deque 接口4.2 ArrayDeque4.3 LinkedList4.4 PriorityQueue参考资料一、集合概述1. 集合的概念和作用数组其实就是一个集合。集合实际上就
摘要由CSDN通过智能技术生成


一、集合概述

1. 集合的概念和作用

数组其实就是一个集合。集合实际上就是一个容器,可以来容纳其它类型的数据。

集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,假设连接数据库,数据库当中有 10 条记录,那么假设把这 10 条记录查询出来,在 Java 程序中会将 10 条数据封装成 10 个 Java 对象,然后将 10 个 Java 对象放到某一个集合当中,将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。所以集合当中存储的都是 Java 对象的内存地址(或者说集合中存储的是引用)。

在 Java 中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。

2. 集合的继承关系图

集合在实际中是非常常用的,最好、务必要记熟下图中的继承关系,不仅要对常用的集合类烂熟于心,还要了解其中的源码。
在这里插入图片描述
上图中,实线边框的是实现类,比如 ArrayList、LinkedList、HashMap等,折线边框的是抽象类,比如 AbstractCollection、AbstractList、AbstractMap 等,而点线边框的是接口,比如 Collection,Iterator,List 等。彩色标记的都是常用的和需要记忆的内容

在 Java 中集合主要分为两大类:

  • java.util.Collection单个方式存储元素,包括 List 和 Set :

    • List:是一个有序集合,可以放重复的数据;
    • Set:是一个无序集合, 不允许放重复的数据;
  • java.util.Map:以键值对的方式存储元素,包括 Map:

    • Map:是一个无序集合,集合中包含一个键对象,一个值对象, 键对象不允许重复,值对象可以重复(例:身份证号—姓名);

二、Collection 部分

Collection 是一个顶层接口,它继承了 java.lang.Iterable 接口和 java.util.Iterator 接口,主要用来定义集合的约定。
在这里插入图片描述

1. Iterable 接口

Iterable 接口是祖宗辈的接口,初学者可能容易对 Iterable 和 Iterator 比较糊涂。从图中可以清楚看到它们和 Collection 的关系。

Collection list = new ArrayList();
Iterator it = list.iterator();

上述代码中,对照图来看,集合 list 调用的是来自 java.lang.Iterable 中的 iterator() 方法,返回的是 java.util 包中的 Iterator 对象,这是一个迭代器对象。

迭代器可以用于安全的遍历元素、移除元素、添加元素,此处涉及到 fail-fast 机制。所以可以用迭代器遍历、添加和删除元素尽量使用迭代器。
在这里插入图片描述
此外,实现 Iterable 接口允许对象成为 for-each 循环的目标,也就是增强 for 循环,数组也可以使用增强 for 循环。

List<Object> list = new ArrayList(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值