23. 集合类

具体信息请查看 API 帮助文档

1. 概述

为了在程序中保存数目不确定的对象,Java提供了一系列特殊的类,这些类可以存储任意类型的对象,并且长度可变,这些类统称为集合。集合类位于java.util包中,使用时必须导包。

Java 集合框架是用于存储、操作和处理数据集合的一组类和接口。它提供了一种灵活、有效和方便的方式来管理数据。

Java 集合框架主要包括以下几个关键概念:

  1. 接口:集合框架定义了一系列接口来表示不同类型的集合,如 ListSetMap 等。这些接口提供了对集合的基本操作和功能规范。

  2. :集合框架提供了一些实现了上述接口的类,这些类实现了集合接口中定义的方法。例如,ArrayListHashSetHashMap 等。

  3. 层次结构:集合框架中的类和接口之间形成了一个层次结构。在这个层次结构中,Collection 接口作为基本接口,定义了一些通用的集合操作,ListSetQueue 接口继承自 Collection 接口,分别提供了不同类型集合的特定操作。同时,Map 接口则是针对键-值对数据的集合操作。

  4. 迭代器:Java 集合框架提供了 Iterator 接口来遍历集合中的元素。通过迭代器,可以按顺序访问集合中的每个元素,进行添加、删除和修改等操作。

  5. 算法:集合框架还提供了一些算法类,可用于对集合进行排序、搜索和操作等常见操作。这些算法是通过静态方法提供的。

集合与数组的区别:

  • 相同点

    都是容器,可以存储多个数据

  • 不同点

    • 数组的长度是不可变的,集合的长度是可变的

    • 数组可以存基本数据类型和引用数据类型

      集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类

2. 分类

集合按照其存储结构可以分为两大类,即单列集合(Collection)和双列集合(Map)。

在这里插入图片描述

2.1 单列集合(Collection

  • Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是ListSet

    • List

      • 特点:元素有序(可以按照存储的顺序取出数据)、可重复、有索引。

      • 接口的主要实现类是:ArrayListLinkedList

    • Set

      • 特点:元素无序且不可重复,无索引。

      • 接口的主要实现类是:HashSetTreeSet

2.2 双列集合(Map

  • Map:双列集合类的接口,用于存储具有键(Key)、值(Value)映射关系的元素,每个元素都包含一对键值,其中键值不可重复且每个键最多只能映射到一个值,在使用Map集合时可以通过指定的Key找到对应的Value。例如:根据一个学生的学号可以成功的找到该学生。

    • Map接口的主要实现类:HsahMapTreeMap

3. 使用场景

3.1 单列集合

  • 如果想要集合中的元素可重复(用的最多)

    • 用ArrayList集合,基于数组的
  • 如果想要集合中的元素可重复,而且当前的增删操作明显多于查询

    • 用LinkedList集合,基于链表的
  • 如果想对集合中的元素去重

    • 用Hashset集合,基于哈希表的(用的最多)
  • 如果想对集合中的元素去重,而且保证存取顺序

    • 用LinkedHashSet集合,基于哈希表和双链表,效率低于Hashset。
  • 如果想对集合中的元素进行排序

    • 用Treeset集合,基于红黑树。后续也可以用List集合实现排序。
  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

酷小洋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值