Collection集合讲解

银河麒麟系统V10 sp1,安装wine 9.0 银河麒麟系统V10 sp1 x86_64,安装wine 9.0 阅读详情
Collection集合讲解
1.概述
  • 集合类的顶级接口是Iterable,Collection继承了Iterable接口
  • 常用的集合主要有 3 类,Set,List,Queue,他们都是接口,都继于Collection
  • Set下的实现类有HashSet,LinkedHashSet,TreeSet等
  • List下的实现类主要有ArrayList,Vector,LinkedList
  • Queue基本上是一个先入先出(FIFO)数据结构的队列

集合类名数据结构特点
ArrayList数组查询快,增删慢,线程不安全,但效率较Vector高
Vector数组查询快,增删慢,线程安全,但效率相对较低
LinkedList双向链表查询慢,增删快,线程不安全,效率高
HashSet哈希表集合内数据不重复,依赖hashCode()和equals()方法,但元素乱序
LinkedHashSet链表与哈希表数据不重复,保证遍历顺序为插入顺序(区分:不是排序)
TreeSet红黑树数据不重复且有序,支持自然排序和自定义排序(Comparable接口)
2.List
  • ArrayList和Vector内部都采用数组实现,不指定大小的情况下,默认容量10,数组的特点,查询(根据索引访问)直接寻址,所以查询的效率非常高
  • ArrayList与Vector的实现基本一样,但Vector方法上都使用synchronized加锁来保证线程安全,相比ArrayList来说效率较低,所以一般我们使用ArrayList,并发也可外部自己来实现
  • ArrayList和Vector尾部添加元素时,也就是常用的add() 方法,如果当前容量足够,不涉及扩容,添加效率也很高
  • 我们一般说ArrayList和Vector增删慢,是因为中间插入、删除,即add(index, element)和remove(index),或者需要扩容的尾部添加,在这样的操作时,ArrayList和Vector都需要进行数组的重组,频繁触发影响效率
  • LinkedList内部采用了双向链表,在插入与删除时,仅仅调整链表指针指向,所以增删效率高,但对于元素获取,虽然LinkedList可根据索引大小来判断前序遍历还是后序遍历,但效率都较ArrayList和Vector低
3.Set
  • HashSet底层实际上是一个HashMap ,初试化容量都是16,默认加载因子是0.75.
  • HashSet内部元素不重复, 是根据hashCode()和equals()方法来控制,先根据hashCode()获取hash值,hash值重复则调用equals()方法,所以如果要自定义重复规则,需要重写hashCode()和equals()方法
  • HashSet遍历元素是无序的,既不记录插入顺序,内部元素也不按规则排序
  • LinkedHashSet是HashSet的子类,内部是LinkedHashMap,即链表加哈希表,初试化容量都是16,默认加载因子是0.75,通过链表来保证了记录插入顺序
  • TreeSet底层是红黑树,排序通过Comparable接口的compareTo()方法来实现,自定义对象如果需要排序需要重写该方法
  • 需要特别注意的是:我们常说LinkedHashSet有序, 这个是指他的遍历顺序与插入顺序是一致的,而说的TreeSet有序,是指其内部元素是按一定规则排序的,这个千万要区分
4.Queue
  • Queue队列默认使用FIFO(先进先出)规则
  • 实现类PriorityQueue 和 ConcurrentLinkedQueue是不阻塞队列,PriorityQueue 类实质上维护了一个有序列表,ConcurrentLinkedQueue 是基于链接节点的、线程安全的队列
  • 而阻塞队列类,它实质上就是一种带有一点扭曲的 FIFO 数据结构。不是立即从队列中添加或者删除元素,线程执行操作阻塞,直到有空间或者元素可用
    • ArrayBlockingQueue :一个由数组支持的有界队列
    • LinkedBlockingQueue :一个由链接节点支持的可选有界队列
    • PriorityBlockingQueue :一个由优先级堆支持的无界优先级队列
    • DelayQueue :一个由优先级堆支持的、基于时间的调度队列
    • SynchronousQueue :一个利用 BlockingQueue 接口的简单聚集(rendezvous)机制
【我的Android进阶之旅】Android自定义View实现一个游戏摇杆,来实现监听遥动的方向或者监听摇动的角度的功能 一、需求描述 去年有个需求,需要使用自定义View实现一个游戏摇杆,来识别上下左右摇动的方向。 有点类似下面这样的王者荣耀游戏摇杆的效果 二、业界已有的参考资料 在下面这篇博客介绍了如何自定义游戏摇杆 2.1 博客介绍 Android自定义摇杆 2.1.1 功能 支持自适应大小 支持2个方向、4个方向、8个方向的摇动监听 支持摇动角度获取 可选回调模式 支持可摇动区域自定义 支持摇杆自定义 支持设置图片、色值、Shape图形 2.1.2 效果图 2.1.3 设置回调方式 setCallBac 阅读详情

相关推荐

给汽车芯片做‘体检’:手把手教你用IEC62380和SN29500估算功能安全失效率

本文详细介绍了如何使用IEC62380和SN29500标准估算汽车芯片的功能安全失效率,涵盖基础认知、方法论对比及实战计算。通过具体案例演示两种标准的应用流程,帮助工程师准确评估半导体器件的可靠性,确保符合ISO 26262标准要求。

weixin_28725553的博客 458

集合:Collection详解.

一、集合概述 1.1、什么是集合?有什么用 数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。 集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象。 在实际开发中,假设连接数据库,数据库当中有10条记录, 那么假设把这10条记录查询出来,在java程序中会将10条 数据封装成10个java对象,然后将10个java对象放到某一个 集合当中,将集合传到前端,然后遍历集合,将一个数据一个 数据展现出来。 ...

lwj_07的博客 3384

从逻辑门到存储阵列:NAND与NOR闪存命名与结构原理详解

在数字电路与半导体存储器领域,逻辑门是构建一切复杂功能的基础单元,其输入输出关系定义了计算与存储的基本原理。与非门(NAND)和或非门(NOR)作为通用逻辑门,其真值表和行为模式深刻影响了芯片设计。基于这些原理,现代闪存技术发展出了两种核心架构:NAND Flash和NOR Flash。这两种闪存的命名直接源于其内部存储单元阵列的连接方式,分别模拟了与非门和或非门的逻辑关系。这种结构差异决定了它们根本的技术价值:NOR Flash采用并联结构,支持快速随机读取,适用于代码存储与原地执行(XiP);而NAND

weixin_33377602的博客 342

集合(Collection)介绍

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

Old丶X 1725

【3D目标检测】环境搭建(OpenPCDet、MMdetection3d、Det3d)

在Conda虚拟环境中搭建MMdetection3d环境

qq_44703886的博客 4253

ML307A模组连接ONENET平台(AT指令步骤教程)

ML307A 是一款集成度高、体积小的物联网通信模组,支持多种无线通信协议,如 LoRa、NB-IoT 等。它具有低功耗、远程通信等特点,适用于多种物联网场景。支持 LoRa 和 NB-IoT 等多种无线通信标准。提供丰富的 GPIO 接口。内置多种传感器支持。UART 接口:用于与微控制器或其他设备通信。GPIO 接口:可以连接外部传感器或执行器。电源接口:用于供电。OneNET 是中国移动推出的一款物联网开放平台,它提供了从数据采集、存储到分析的一站式解决方案。

xiewengeng的博客 5481

Collection集合详解

1.单列集合框架结构 |----Collection接口:单列集合,用来存储一个一个的对象 |----List接口:存储序的、可重复的数据。 -->“动态”数组 |----ArrayList、LinkedList、Vector |----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合” |----HashSet、LinkedHashSet、TreeSet ...

剑剑剑的博客 751

【亲测有效】OpenClaw Gateway 出现 “(no output)“ 卡死问题完整解决指南:从手动重启到 systemd Watchdog 自动恢复

最近在使用 OpenClaw(自托管 AI 助手框架,前身 Clawdbot/Moltbot)时,遇到了一个非常常见的顽疾:TUI(终端界面)或 Telegram 等通道经常显示 "(no output)",消息发出去后机器人完全没反应,看起来像是卡死了。

hampeter的博客 8609

collection的详解,菜鸟学习。

(2)、List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法 ,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想要的值。1.Vector是线程同步的,所以它也是线程安全的,而ArrayList是线程异步的,是不安全的。

A012512的博客 1621

出现Command ‘vim‘ is available in the following places,vim: command not found等解决方法

内置命令无法识别,说明系统变量有误,导致无法识别,既然系统变量有误,将其注释或者更改为正确的即可,但是现在打不开,又怎么注释掉。替换vim来打开编辑,打开之前错误的全局变量文件,发现变量有误,要么注释要么改为。系统变量有全局变量(通过命令行printenv或者echo)和局部变量。对应通过vim修改错误的变量文件,不然source也无法让配置文件生效。本身vim是系统内置的命令,连vim都出现问题。修改为正确的即可,之后还需要重启服务器,使用。之后即可成功,通过即可查看命令是否有写入。...

码农研究僧的博客 5883

玩转Docker小游戏项目系列:Docker部署魔塔网页经典小游戏

玩转Docker小游戏项目系列:Docker部署魔塔网页经典小游戏

jks212454的博客 1063

java中的Collection集合(详解)

集合是:存储对象的容器,存储对象的对象(elements)。在数组中也可以存储对象,可代替数组,而用Collection集合存储对象,可以使对象拥有更多的特点和功能。​ 特点是:容器的工具类,定义了对多个对象进行操作的方法。Collection接口的子类集合有些是允许有重复元素,有些却没有。JDK不提供任何实现类直接实现此接口。Collection接口有很多抽象方法,是它的子接口或者实现类共性的标准。

2301_76913276的博客 1787

YOLO11有效改进专栏目录

YOLO11改进专栏导航

A1983Z的博客 3679

Collection集合和Collections的对比讲解

目录 Collection集合 概述: 集合:集合是java中提供的一种容器,可以用来存储多个数据,集合和数组都是容器. 常用的功能: Collection是所有单列集合的父接口,因此单列集合(Iist和Set)通用的一些方法,下面这些方法可以用于操作所有的单列集合,方法如下. public booklean add(E e):把给定的对象添加到当前集合中. public void ...

风一般的男子·小亮仔 1790

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

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java_集合初步讲解——Collection集合

集合 1、概述 集合是用来存储多个同类型数据的容器, 它的长度是可以变化的. 2、集合的体系图 记忆 集合的顶层都是接口, 其中Collection接口是单列集合的顶层接口, Map接口是双列集合的顶层接口 Collection接口(单列集合)有两大子体系: List体系的特点是: 有序, 可重复 Set体系的特点是: 无序, 唯一 一个小技巧: 以后但凡我们学习一个新的体系时, 都建议采用学顶层, 用底层的方式来学习. : 因为顶层封装的是整个继承体系的共性内容, ...

weixin_54527017的博客 263

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

集合框架-Collection深入剖析(重点详细讲解)

博主计划使用优快云来记录Java后端开发的学习经历,并分享自己的编程心得和知识,期望能为那些有需求的朋友提供帮助。博主也期望能与那些持续努力学习的朋友们共同进步!编程之路是一条充满艰辛与挑战的路,需要我们付出更多的心血,才能走得更远。只有通过不懈的研究和深入的思考,以及勤于实践,我们才能在编程的道路上取得真正的成就。

weixin_49785524的博客 1477

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java【Collection集合】【Iterator迭代器】详细讲解

【Collection、泛型】 这篇文章主要讲解单列集合(set,list) 后续会更新双列集合(map) 多列链接: 主要内容 Collection集合 迭代器 增强for 1.Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集合:集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据

qq_43436117的博客 470

Collection集合的讲解

Collection集合 迭代器 增强for 泛型 . ...

兵马未动,粮草先行。。。的博客 415

Java集合(Collection)详细讲解——————墨白

我们知道,数组作为一种容器,它的长度是不可变的,这就导致我们必须在使用数组前预估所需要的大小,很不方便。而接下来我们要介绍的集合也是一种容器,和数组类似,集合也必须存储一系列相同类型的元素。不过集合的长度是可变的。 之前我们熟知的 ArrayList<E>类型就是典型的集合类型,其中E是泛型的意思,在集合中,E必须是引用对象类型。这就告诉我们,不能使用java中的基本数据类型,必须使用...

正直 的博客 514

JavaSE进阶 | Collection集合、List集合、Set集合讲解

JavaSE进阶 | Collection集合、List集合、Set集合讲解

m0_61933976的博客 1274

java集合Collection讲解

Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口   Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Element

dhj1987822的博客 934

java集合Collection、List、map、ConcurrentHashMap讲解

1、java集合构成 2、Collection接口       Collection是java最基本的接口,一个Collection代表一组Object。JDK不直接提供Collection的接口,而是提供继承自Collection的子接口 如List、Set。       有些Collection支持排序,有些不支持;有些可以允许元素相同,有些则不允许。         不论Coll

forrest 2247

java集合中Collection和List的讲解

1.为什么java工程师们要提出集合这个概念?     我们目前存储数据是不是用数组来存储,而数组里面是不是只能存放一种数据类型的数据,对数组进行添加和删除是不是很麻烦,我们要移动数据的大小。并且我们对象太多的时候用什么存储呢?这就是我们的需求,我们要存储多个对象怎么办,所以就出现了集合这个概念。集合对对象的添加和删除操作使用很方便。    Collection这个是集合的父接口,所有的接口都

java/android相关技术的学习 5365

BAT面试文档,Collection集合讲解

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!套讲解视频、实战项目源码讲义》点击传送门即可获取!**

2401_84412988的博客 935

集合进阶:Collection 、List 、Set 详细讲解

讲述一些Collection 、List 、Set 的知识。

XsyShuai的博客 779

Java集合框架概述及Collection接口方法讲解

Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊 端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。 1 数组在内存存储方面的特点: 2 数组初始化以后,长度就确定了。 3 数组声明的类型,就决定了进行元素初始化时的类型 4 数组在存储数据方面的弊端: 5 ...

gldbys的博客 320
上一篇: Redis基础知识汇总
下一篇: ArrayList实现原理(JDK1.8)
杨小格
博客等级 码龄10年 19粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值