首页IT科技java中list set map的区别(Java集合框架)

java中list set map的区别(Java集合框架)

时间2025-07-30 10:08:17分类IT科技浏览4678
导读:Java集合框架 每博一文案 《杀死一只知更鸟》中有这样一段话:“你永远不可能真正地了解一个人,除非你穿上他的鞋子走来走去,站在他的角度思考问题。 可真当你走过他的路时,你连路过都觉得难过。” 世上没有真正的感同身受,也永远不会有一模一样的境遇。...

Java集合框架

每博一文案

《杀死一只知更鸟》中有这样一段话:“你永远不可能真正地了解一个人               ,除非你穿上他的鞋子走来走去                  ,站在他的角度思考问题            。 可真当你走过他的路时       ,你连路过都觉得难过                      。            ” 世上没有真正的感同身受            ,也永远不会有一模一样的境遇      。 很多时候                   ,你以为看到了全貌          ,但其实只有冰山一角         。永远不要凭着一点蛛丝马迹        ,就随意评判别人的人生                      。 在你看不到的角落里                    ,多的是你不知道的事          。 不知别人的苦             ,就别劝人大度;没有经历过他人的难    ,就不要肆意嘲讽      。

@

1. 集合简介

早在 Java 2 中之前                     ,Java 就提供了特设类                     。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组              。

虽然这些类都非常有用                ,但是它们缺少一个核心的,统一的主题   。由于这个原因                  ,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同                    。

集合框架被设计成要满足以下几个目标                  。

该框架必须是高性能的。基本集合(动态数组                   ,链表    ,树               ,哈希表)的实现也必须是高效的                。 该框架允许不同类型的集合                  ,以类似的方式工作       ,具有高度的互操作性                      。 对一个集合的扩展和适应必须是简单的   。

为此            ,整个集合框架就围绕一组标准接口而设计            。你可以直接使用这些接口的标准实现                   ,诸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合                      。

集合也称为容器          ,仅仅是一个对象        ,多个元素组成一个单元      。集合用于存储               、检索                  、操作和聚合数据         。 通常                    ,他们标识形成自然组的数据项             ,例如扑克牌(牌集合)    ,邮件文件夹(字母集合)                      。

1.1 集合和数组的区别:

数组:

数组初始化以后                     ,长度就是确定了的                ,无法修改的,不便于扩展          。 数组声明的类型                  ,就决定了进行元素存储的类型了                   ,仅仅只能存储一种数据类型      。 数组中提供的属性和方法少    ,不便于进行添加               ,删除                  ,插入等操作       ,且效率不高            ,同时无法直接获取存储元素的实际个数                     。 数组存储的数据是有序的                   ,可以重复的          ,存储数据的特点单一              。

集合:

集合的长度是可变的        ,不足时                    ,会自动扩容             ,便于扩展   。 集合可以存储不同的类型(其实集合一般存储的也是同一种类型)    ,实际上集合存储的是引用对象的地址值                     。所以集合只能存储一种类型引用数据类型                      ,不可以存储基本数据类型(可以存储包装类)                  。而数组既可以存储基本数据类型                ,也可以存储引用数据类型。 集合提供大量的属性和方法,便于添加                  ,删除                   ,插入    ,只能获取到集合中存储元素的实际个数 size() Java 集合类可以用于存储数量不等的多个对象               ,还可用于保存具有映射关系的关联数组                。

2. 集合的使用场景

3. 集合框架概述

一个集合框架是用于表示和操作的集合统一架构                      。所有集合框架包含以下内容:

接口

这些是表示集合的抽象数据类型   。接口允许独立于它们的表示的细节来操纵集合            。在面向对象语言中                  ,接口通常形成层次结构                      。

实现

这些是集合接口的具体实现      。实质上       ,它们是可重用的数据结构         。

算法

这些方法对实现集合接口的对象执行有用的计算            ,例如搜索和排序                      。算法被认为是多态的: 也就是说                   ,相同的方法可以用于适当的收集接口的许多不同的实现          。实质上          ,算法是可重用的功能      。

Java集合可分为 Collection 和 Map 两种体系                     。

Collection 接口:单例数据        ,定义了存取一组对象的方法的集合              。 List : 元素有序                    ,可重复的集合   。具体的详细内容可以移步至:??? Java Collection 接口下的 “ List 集合                      ” 与 “ Set 集合       ”_ChinaRainbowSea的博客-CSDN博客 Set :元素无序             ,不可重复的集合                    。 Map 接口:双列数据    ,保存具有映射关系          ”key-value对“ 的集合                  。具体的详细内容可以移步至:??? Java集合 Map 集合 与 操作集合的工具类: Collections 的详细说明_ChinaRainbowSea的博客-CSDN博客

Java集合的框架图:

4. Java 集合框架的好处

Java 集合框架提供了以下好处:

减少编程工作量:

通过提供有用的数据结构和算法                     ,集合框架可以让您专注于程序的重要部分                ,而不是使其工作所需的低级“管道                      ”。 通过促进不相关的 API 之间的互操作性,Java 集合框架免除了编写适配器对象或转换代码来连接 API                。

提高程序速度和质量:

这个集合框架提供了有用的数据结构和算法的高性能                  ,高质量的实现                      。每个接口的各种实现是可以互换的                   , 所以程序可以通过切换集合实现来轻松地进行调整   。由于您已经摆脱了编写自己的数据结构的苦差事    , 您将有更多时间致力于提高程序的质量和性能            。

允许不相关的 API 之间的互操作性:

集合接口是 APIs 来回传递集合的本地语言                      。如果我的网络管理 API 提供了一个节点名称的集合               , 并且如果您的 GUI 工具包期望一个列标题的集合                  ,我们的 API 将无缝地互操作       ,即使它们是独立编写的      。

减少了学习和使用新的 API 的努力:

许多 API 自然会将输入的集合作为输出提供         。过去            ,每个这样的 API 都有一个小的子 API 来操纵它的集合                      。 这些专用集合的子 API 之间几乎没有一致性                   ,所以你必须从头学习每一个          ,使用它们很容易犯错误          。 随着标准集合接口的出现        ,问题就消失了      。

减少设计新 API 的工作量:

这是以前优势的另一面                     。设计师和实施者不必在每次创建依赖于集合的 API 时重新发明轮子; 相反                    ,他们可以使用标准的集合接口              。

促进软件重用:

符合标准集合接口的新数据结构本质上是可重用的   。对于在实现这些接口的对象上运行的新算法也是如此                    。

5. 实现

实现是用于存储集合的数据对象             ,本课介绍以下几种实现:

通用实现 :是最常用的实现    ,专为日常使用而设计                  。他们在标题为“通用目的实现          ”的表中进行了总结。 特殊实现:专为在特殊情况下使用而设计                     ,并显示非标准性能特性                ,使用限制或行为 并发实现 :支持高并发,通常以牺牲单线程性能为代价                。这些实现是 java.util.concurrent 软件包中的一部分 封装器实现 : 与其他类型的实现(通常是通用实现)结合使用                  ,以提供增加或现在的功能 方便实现 : 也就是小型实现                   ,通常通过静态工厂方法提供    ,为特殊集合(例如单例集)的通用实现提供方便               ,高效的替代 抽象实现 : 便于构建定制实现的骨架实现                      。稍后在“自定义集合的实现      ”中进行介绍   。一个高级的话题,这不是特别困难                  ,但相对少的人需要做            。

通用实现被总结在下表

接口 哈希表 可变数组 平衡二叉树 链表 哈希表+链表 Set HashSet - TreeSet - LinkedHashSet List - ArrayList - LinkedList - Deque - ArrayDeque - LinkedList - Map HashMap - TreeMap - LinkedHashMap Queue - - - - -

正如你可以从表中看到       ,Java 集合框架提供了几种通用的实现 Set            , List 以及 Map                      。

6. 最后:

限于自身水平                   ,其中存在的错误          ,希望大家给予指教        ,韩信点兵——多多益善                    ,谢谢大家             ,后会有期    ,江湖再见!!!

声明:本站所有文章                     ,如无特殊说明或标注                ,均为本站原创发布      。任何个人或组织,在未征得本站同意时                  ,禁止复制       、盗用            、采集                   、发布本站内容到任何网站          、书籍等各类媒体平台         。如若本站内容侵犯了原著者的合法权益                   ,可联系我们进行处理                      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
微信小程序怎么实现状态管理功能(微信小程序怎么实现状态管理) 默认网关是什么东西,怎么填(默认网关的作用是什么详情)