Collection总览

"Java集合总结之Collection整体框架"用到的图片 立即下载

前言

声明,本文使用的是JDK1.8

从今天开始正式去学习Java基础中最重要的东西--->集合

无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的资料,下面未必就做到日更了…

当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~

一、集合(Collection)介绍

1.1为什么需要Collection

  1. Java是一门面向对象的语言,就免不了处理对象

  2. 为了方便操作多个对象,那么我们就得把这多个对象存储起来

  3. 想要存储多个对象(变量),很容易就能想到一个容器

  4. 常用的容器我们知道有-->StringBuffered,数组(虽然有对象数组,但是数组的长度是不可变的!)

  5. 所以,Java就为我们提供了集合(Collection)~

1.2数组和集合的区别

接下来,我们可以对数组和集合的区别来分析一下:

数组和集合的区别:

  • 1:长度的区别

    • 数组的长度固定

    • 集合的长度可变

  • 2:内容不容

    • 数组存储的是同一种类型的元素

    • 集合可以存储不同类型的元素(但是一般我们不这样干..)

  • 3:元素的数据类型

    • 数组可以存储基本数据类型,也可以存储引用类型

    • 集合只能存储引用类型(你存储的是简单的int,它会自动装箱成Integer)

1.3Collection的由来与功能

Collection的由来:

  • 集合可以存储多个元素,但我们对多个元素也有不同的需求

    • 多个元素,不能有相同的

    • 多个元素,能够按照某个规则排序

  • 针对不同的需求:java就提供了很多集合类,多个集合类的数据结构不同。但是,结构不重要,重要的是能够存储东西,能够判断,获取

  • 把集合共性的内容不断往上提取,最终形成集合的继承体系---->Collection

Collection的大致结构体系是这样的:

640?wx_fmt=jpeg

但是,一般我们要掌握的并不需要那么多,只需要掌握一些常用的集合类就行了。下面我圈出来的那些:

640?wx_fmt=png

再次精减:

640?wx_fmt=bmp

Collection的基础功能:

640?wx_fmt=png
640?wx_fmt=png

二、迭代器(Iterator)介绍

我们可以发现Collection的源码中继承了Iterable,有iterator()这个方法…

640?wx_fmt=png

点进去看了一下,Iterable是一个接口:

640?wx_fmt=png

它有iterator()这个方法,返回的是Iterator

再来看一下,Iterator也是一个接口,它只有三个方法:

  • hasNext()

  • next()

  • remove()

640?wx_fmt=png

可是,我们没能找到对应的实现方法,只能往Collection的子类下找找了,于是我们找到了--->ArrayList(该类后面会说)

于是,我们在ArrayList下找到了iterator实现的身影:它是在ArrayList以内部类的方式实现的!并且,从源码可知:Iterator实际上就是在遍历集合

640?wx_fmt=png

所以说:我们遍历集合(Collection)的元素都可以使用Iterator,至于它的具体实现是以内部类的方式实现的!

640?wx_fmt=bmp

三、List集合介绍

从上面已经可以看到了,Collection主要学习集合的类型两种:Set和List,这里主要讲解List!

我们来看一下List接口的方法,比Collection多了一点点:

  • List集合的特点就是:有序(存储顺序和取出顺序一致),可重复

640?wx_fmt=png

Collection返回的是Iterator迭代器接口,而List中又有它自己对应的实现-->ListIterator接口

该接口比普通的Iterator接口多了几个方法:

640?wx_fmt=png

从方法名就可以知道:ListIterator可以往前遍历,添加元素,设置元素

3.1List集合常用子类

List集合常用的子类有三个:

  • ArrayList

    • 底层数据结构是数组。线程不安全

  • LinkedList

    • 底层数据结构是链表。线程不安全

  • Vector

    • 底层数据结构是数组。线程安全

现在知道有三个常用的集合类即可,后面会开新的文章来讲解的~

四、Set集合介绍

从Set集合的方法我们可以看到:方法没有比Collection要多

  • Set集合的特点是:元素不可重复

640?wx_fmt=png

4.1Set集合常用子类

  • HashSet集合

    • A:底层数据结构是哈希表(是一个元素为链表的数组)

  • TreeSet集合

    • A:底层数据结构是红黑树(是一个自平衡的二叉树)

    • B:保证元素的排序方式

  • LinkedHashSet集合

    • A::底层数据结构由哈希表和链表组成。

五、最后

本篇主要概括了Collection的要点,并没有深入去研究各种的集合类,该部分留到新开的章节去讲解,敬请期待~~

明天是清明节(回家),这两天是不更新集合的了,如果在家有空可能会刷几道算法题然后整理后会更新公众号~

文章的目录导航:https://zhongfucheng.bitcron.com/post/shou-ji/gong-zhong-hao-wen-zhang-zheng-li

参考资料:

  • Core Java

  • 数据结构与算法分析,Java语言描述

如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y


DSH-Work:一个让DeepSeek下载即用的Harness客户端 使用大模型工具时,环境配置往往比模型本身更让人头疼。DeepSeek Harness作为一类封装层,将模型调用、上下文管理、参数控制等复杂细节统一收拢,对外提供简洁操作入口。开源的DSH-Work正是这样一款Harness客户端,它通过自带运行时与保守默认配置,实现了下载即用、免配环境的目标,让使用者无需掌握Python、CUDA等专业知识即可快速连接DeepSeek云端或本地服务。对于非技术背景的用户,它降低了AI工具的使用门槛;对于开发者,它把时间从环境排错中解放出来,更专注于提示词调优与工作流设计。无 阅读详情

相关推荐

EfficientNet中的MBConv模块详解:为什么它能如此高效?

本文深度解析了EfficientNet中的MBConv模块,详细介绍了其核心设计理念、效率优化技术和复合缩放理论。MBConv通过深度可分离卷积、倒残差结构和注意力机制三大关键技术,实现了计算效率与模型性能的平衡,成为高效网络结构设计的典范。

tcp8optimizer的博客 349

集合Collection总览

前言 声明,本文使用的是JDK1.8 从今天开始正式去学习Java基础中最重要的东西--->集合 无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的资料,下面未必就做到日更了... 当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~ 一、集合(Collection)介绍 1....

weixin_34237596的博客 95

终端运行脚本报: 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_

PowerShell 执行策略是一种安全机制,用于控制哪些脚本可以在系统上运行。默认情况下,Windows 系统会设置较为严格的执行策略,以防止恶意脚本的执行。执行策略有以下几种常见级别:Restricted(限制):不允许运行任何脚本。AllSigned(全部签名):仅允许运行经过数字签名的脚本。RemoteSigned(远程签名):允许运行本地脚本,但远程下载的脚本需要数字签名。Unrestricted(无限制):允许运行所有脚本,但会警告未签名的脚本。

欢迎来到我的技术博客!这里是一个专注于软件开发的地方,我将分享关于 Java、Python、C++ 和易语言等多种编程语言的教程、技巧、最佳实践以及开发经验。 5083

java集合总览,集合Collection总览

前言声明,本文使用的是JDK1.8从今天开始正式去学习Java基础中最重要的东西--->集合无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的资料,下面未必就做到日更了...当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~一、集合(Collection)介绍1.1为什么需要CollectionJava是一门面向对象的语言,就免不了处...

weixin_32487557的博客 164

PyCharm与MicroPython联手:打造高效ESP32开发环境

本文详细介绍了如何使用PyCharm与MicroPython打造高效的ESP32开发环境。通过配置PyCharm插件、刷写MicroPython固件以及实战示例,帮助开发者快速上手嵌入式Python开发,显著提升物联网项目的开发效率。

weixin_29169899的博客 380

GAMIT/GLOBK 10.71在Linux环境下的GNSS数据处理全流程解析(附实战案例)

本文详细解析了在Linux环境下部署和运行GAMIT/GLOBK 10.71进行GNSS数据处理的完整流程。从系统环境配置、软件编译安装、关键表格文件更新,到运行自带示例和实战案例,提供了清晰的步骤与避坑指南,帮助用户掌握这一高精度GNSS数据处理工具的核心使用方法。

kmeans3miner的博客 310

Collection 源码解析总览

Collection 源码解析 一、简介 借用《百度百科》的一段解释:Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子...

TEXOUS的博客 897

告别裸机SPI!用HAL库和CubeMX重新玩转STM32与MAX6675温度传感器

本文详细介绍了如何利用STM32CubeMX和HAL库高效驱动MAX6675温度传感器,实现稳定可靠的热电偶温度监测系统。通过图形化配置SPI接口和封装专用驱动函数,开发者可以快速构建嵌入式温度测量方案,适用于工业控制、物联网设备等多种应用场景。

weixin_42525632的博客 234

Java集合 | Collection与Map总览

Java集合学习笔记一Java集合框架总览 Java集合框架总览

heroes134的博客 226

如何解决Windows系统中缺失oem*.inf文件导致的软件运行问题

本文详细解析了Windows系统中因oem*.inf文件缺失导致软件无法运行的常见问题。文章阐述了oem*.inf文件作为安装信息文件的重要作用,并提供了从精准定位文件路径、安全获取与替换文件的手动修复步骤,到利用专业工具进行一站式修复的完整解决方案。最后,还给出了从软件安装来源、卸载习惯到系统维护等方面的预防措施,帮助用户彻底避免此类问题。

water的专栏 546

[yolov5/yolov8修改]替换yolov5/yolov8中的主干网络为EfficientNetv2

针对yolov5和yolov8的主干网络进行替换。

PLH19990227的博客 4147

集合和数组的区别_JAVA集合篇一之Collection总览

前言声明,本文使用的是JDK1.8从今天开始正式去学习Java基础中最重要的东西--->集合无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的资料,下面未必就做到日更了…当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~一、集合(Collection)介绍1.1为什么需要CollectionJava是一门面向对象的语言,就免...

weixin_39860583的博客 202

基于EB工具的TC3xx_MCAL配置开发05_ADC模块硬件Pwm触发Demo配置

基于EB工具,硬件Pwm触发ADC采集Demo配置详细介绍

initiallizer的博客 3509

集合总览--Collection框架整体解析

Collection简述: JDK中java.util包下,是JDK为java开发提供的常用工具类,在这些工具类中,java本身对常用的数据结构进行了封装,在JDK1.2版本中引入了collection框架,使得java开发者不再需要自行进行部分数据结构的设计。 在collection框架中有我们常用的诸如:ArrayList、HashMap、Vector等,每种集合结构为我们提

键盘上流淌的日子 8997

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java后端技术路线_Java后端精选技术:Collection总览

前言声明,本文使用的是JDK1.8从今天开始正式去学习Java基础中最重要的东西--->集合无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的资料,下面未必就做到日更了…当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~一、集合(Collection)介绍1.1为什么需要CollectionJava是一门面向对象的语言,就免不了处理对...

weixin_31264951的博客 155

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JavaSE--集合总览01:单列集合Collection的方法和遍历方式

Java的集合分为Collection接口和Map接口Collection接口的方法是所有单列集合可用:▲Collection是接口不能new对象可以通过它的实现类创建例子://多态写法。

weixin_62189092的博客 818

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java怎么往arraylist存储和获取信息_十年程序员总结:Java之集合Collection总览

一、集合(Collection)介绍1.1为什么需要CollectionJava是一门面向对象的语言,就免不了处理对象为了方便操作多个对象,那么我们就得把这多个对象存储起来想要存储多个对象(变量),很容易就能想到一个 容器常用的容器我们知道有–>StringBuffered,数组(虽然有对象数组,但是数组的长度是不可变的!)所以,Java就为我们提供了集合(Collection)~1.2数组...

weixin_39745269的博客 229
上一篇: ThreadLocal就是这么简单
下一篇: 集合Collection总览
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值