集合的概述

java集合框架(Java Collections Framework)为开发者提供了一系列通用容器,所谓容器就是可以容纳其他对象的对象,在jdk1.2开始,就提供了通用容器。

在这里插入图片描述

1.Java集合框架的概述

容器是用于容纳其他对象的对象,因此基本数据类型无法直接使用容器,必须要转换成包装类后才可以使用,这里就涉及到了包装类的概念。

所有的集合类都存在于:java.util包下

Java集合框架的优点:

  • 降低编程难度

  • 提高程序性能

  • 提高API之间的互操作性

  • 降低学习难度

  • 提高代码的重用性

1.1 集合和数组的异同

  • 相同点:

    • 都是对多个数据进行存储操作的容器

    • 都是内存层面的存储结构,不涉及到持久化存储层面

  • 不同点

    • 数组:

      • 一旦初始化以后,长度就确定了–不可修改

      • 声明后,元素的类型必须一致,只能操作指定类型的数据–只能存储一种类型的数据(可以是基本数据类型,也可以是对象)

      • 提供的方法有限,不利于增删改查等操作,也没有提供相应的属性

      • 数组的存储特点:有序,可重复

    • 集合:

      • 只能保存对象

      • 支持保存具有映射关系的数据

      • 可扩容

      • 增删改查方法多,便于对各种数据的操作

2.集合继承树

集合主要分为两大接口:

  • Collection接口:单列集合,用来存储一个一个的对象

    • List接口:有序–添加顺序,可重复

      • ArrayList:线程不安全、遍历快,增删慢、底层使用数组

      • Vector:线程安全、遍历快、增删慢,底层使用数组

      • LinkedList:线程不安全、遍历慢,增删快,底层使用双向循环链表

    • Set接口:无序–添加顺序,不可重复

      • HashSet:底层使用HashMap实现,存取速度快

      • TreeSet:底层二叉树实现,内部是TreeMap和SortedMap

      • LinkedHashSet:hash表存储、双向链表记录插入记录、底层是LinkHashMap

      • EnumSet:

    • Queue(队列)

      • PriorityQueue:基于堆结构实现,可以实现优先队列,非FIFO,每次取最小元素

      • ArrayDeque:底层基于循环数组实现双端队列

  • Map集合(字典):双列集合,用来存储一对一对的数据(采用键对值的形式key-value),相当于“函数”,key不可重复,value可重复

    • HashMap:线程不安全、底层数组+链表+红黑树、key值和value值可为null,

    • Hashtable:线程安全、底层hash表、key和value都不允许为null

    • TreeMap:线程不安全、底层二叉树、key值不可为null,value可以为null

    • LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或则最近最少使用顺序(LRU)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聚数力 以数兴 | 与“闽”同行,共话数字未来

闽江之畔,数智腾飞。5月24日,第七届数字中国建设峰会在海峡国际会展中心盛大举办。本届展会的主题是“释放数据要素价值,发展新质生产力”,由国家发展改革委、国家数据局、福建省人民政府等单位共同主办,福州市人民政府…

数据恢复的救星!快速恢复手机数据的2个秘籍!

当我们的照片、视频、联系人、短信和应用程序丢失时,许多人可能会感到束手无策,无论是珍贵的照片、重要的工作文件还是个人的联系方式,一旦丢失,都可能带来极大的不便和困扰。但随着数据恢复技术的发展,我们有了更多的…

锐捷网络与您相约第七届数字中国建设峰会 共话数字未来

第七届数字中国建设峰会将于5月24日至25日在福建福州举办,本届峰会是国家数据工作体系优化调整后首次举办的数字中国建设峰会,主题是“释放数据要素价值,发展新质生产力”。作为行业领先的ICT基础设施及解决方案提供商,锐捷网络与福建省电子信息集团、星网锐捷,围绕“发展新质生…

2024中青杯数学建模竞赛A题人工智能视域下养老辅助系统的构建思路代码论文分析

2024中青杯数学建模A题论文和代码已完成,代码为A题全部问题的代码,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解(问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解)、模型的评价…

用go语言实现一个有界协程池

写在文章开头 本篇文章算是对go语言系列的一个收尾,通过go语言实现一个实现一个简单的有界协程池。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护…

HDR视频相关标准-HDR vivid(二)

上文介绍了HDRvivid的一些技术。今天从全局角度来看看HDR视频的处理流程,HDR视频系统,即建立一个比SDR视频更大的色彩/亮度坐标体系,并改变系统的传输函数,以再现更大的色域(WCG)和更高的亮度动态范围。 菁彩 HDR技术的专业术语 …

【ROSUbuntu】常用工具合集

1. 源 ADM64 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror arm64 ubuntu-ports | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2. FileZilla sudo apt-get install filezilla 3. Nomachine8 AMD64

操作系统实战(四)(linux+C语言)

目录 实验目的 前提知识 实验题目 题目分析 实验程序 头文件 头文件实现 核心代码文件 (各类进程) 生产者 抽烟者A 抽烟者B 抽烟者C makefile文件 实验运行 运行结果分析 总结 实验目的 加深对并发协作进程同步与互斥概念的理解&…

Jenkins配置(插件/角色/凭证)

目录 传送门前言一、Jenkins插件管理1、更换为国内下载源2、中文汉化插件下载(不推荐)3、低版本Jenkins爆红插件安装4、低版本Jenkins插件持续报错解决办法 二、Jenkins用户角色三、Jenkins凭证管理(svn/git)1、Username with pas…

NIO流(多路复用技术)

目录 什么是NIO使用场景 NIO(new IO)相关包路径NIO的实现基础NIO的核心组件Buffer缓冲区详解数据如何从磁盘读到用户进程 ChannelChannel的使用 其他组件字符集和Charset文件锁NIO工具类使用Files的FileVisitor遍历文件和目录使用WatchService监控文件变化访问文件属性 什么是N…

什么样的无线麦克风好?一文看懂哪种麦克风降噪效果好

作为视频创作者,拍摄视频除了要注意拍摄的画质外,声音的录制也很重要。声音录制的清晰度也会直接影响整个作品的整体水平,要想录的声音清晰,有专业级录制效果,必须选好麦克风,而无线领夹麦克风,…

【工具分享】Annabelle勒索病毒解密工具

前言 Annabelle勒索病毒灵感来自恐怖电影系列 Annabelle。除了文件加密功能外,Annabelle 勒索软件还会试图禁用防火墙,强制停止一系列正在运行程序,通过连接的 USB 驱动器进行传播。 特征 勒索内容: Annabelle 使用 AES256 CBC 加…

【Linux】线程同步和生产者-消费者模型

目录 一. 线程同步1. 条件变量2. 条件变量接口条件变量的创建及初始化条件变量的销毁条件变量等待条件变量唤醒 3. 条件变量同步解决抢占问题 二. 生产者-消费者模型1. 什么是生产者-消费者模型2. 为什么要使用生产者-消费者模型3. 生产者-消费者模型特点4. 基于阻塞队列实现生…

技术前沿:三品PLM系统引领工程变更管理新趋势

引言 在当今快速变化的制造行业,产品生命周期管理(PLM)系统已成为企业不可或缺的工具之一。PLM系统不仅帮助企业优化产品开发流程,还对工程变更管理(ECM)起着至关重要的作用。本文将探讨PLM系统在工程变更…

解决ssh报错,.ssh/id_rsa: No such file or directory Permission denied (publickey)

拉取依赖或者代码时说没有权限 首先我们可以看到的是这个报错但是我们的远程确实配置ssh密钥 首先我们可以看到的是这个报错 但是我们的远程确实配置ssh密钥 我们可以在我们项目路径下添加一下我们的私钥如: 首先确定我们ssh是正常启动的eval $(ssh-agent)我们可以…

AC/DC电源模块:提供高质量的电力转换解决方案

BOSHIDA AC/DC电源模块:提供高质量的电力转换解决方案 AC/DC电源模块是一种电力转换器件,可以将交流电转换为直流电。它通常用于各种电子设备和系统中,提供高质量的电力转换解决方案。 AC/DC电源模块具有许多优点。首先,它能够提…

让大模型变得更聪明:人工智能的未来发展之路

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

以JVM新特性看Java的进化之路:从Loom到Amber的技术篇章

引言: JVM的最新特性通过在效率、功能和易用性方面的创新,对Java的未来发展产生了深远的影响。以下是几个关键特性如何塑造了Java的未来: 正文: 轻量级并发 - 项目Loom: 项目Loom通过引入虚拟线程(也被称为…

江苏职称申报大揭秘:你所不知道的那些细节

大家好!今天我将带大家深入探索江苏职称申报的一些你可能从未关注过的细节。对于在江苏工作的工程类小伙伴们来说,这些信息或许能助你一臂之力,让你在职称申报的道路上更加顺畅。 我们要明确的是,江苏省的工程类职称申报主要有三种…

每日一题——只需一行Python秒杀:PAT乙级1009 说反话!但不能故步自封!(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 各部分功能分析: 综合时间复杂度 综合空间复杂度 总结 思路…