day34 集合总结
集合总结
一、概述
-
作用:存储对象的容器,代替数组的,使用更加的便捷
-
所处的位置:java.util
-
体系结构
二、Collection
-
内部的每一个元素都得是引用数据类型
-
常用方法
-
add(Object o) 添加元素
-
addAll(Collection c) 将指定集合中的所有元素存入到当前集合
-
remove(Object o) 移除元素
-
removeAll(Collection c) 删除当前集合中包含指定集合中的所有元素
-
isEmpty() 判断集合是否为空集合
-
size() 返回集合中元素的个数
-
clear() 清空集合
-
contains(Object o) :判断集合中是否包含指定的元素
-
containsAll(Collection c) 判断当前集合是否包含指定集合中的所有元素
-
三、List
-
List是Collection下的一个子接口
-
特点:有序,可重复,有下标
-
常用方法
-
add(int index,Object) 将指定元素添加到当前集合指定的位置
-
remove(int index) 删除当前集合指定位置上的元素
-
get(int index) 获取当前集合中指定位置上的元素
-
set(int index, Object o) 将当前集合中指定位置上的元素替换为指定的元素
-
List subList(int a,int b) 截取当前集合中的元素获取一个子集、
-
四、List接口的实现类
(一)ArrayList(重点)
-
特点:底层封装了一个数组用于存储数据,数组默认长度为10
-
查询快,增删慢
-
JDK1.2提供的
-
线程不安全
(二)LinkedList
-
特点:底层封装了链表用于存储数据,
-
增删快,查询慢,首尾操作极快
-
JDK1.2提供
-
线程不安全
(三)Vector(了解)
-
内部封装一个数组用于存储数据
-
查询快,增删慢
-
JDK1.0提供,最原始的集合
-
线程安全的
-
Stack(栈)继承了Vector
五、遍历集合
-
for循环遍历
-
新循环,增强for循环
-
迭代器(iterator)遍历
-
boolean hashNext() 问,是否有下一个元素
-
E next() 取,获取下一个元素
-
void remove() 删 删除当前元素
-
-
forEach方法遍历 结合了Lambda表达式
六、Collections (类)
-
java.util.Collections 是一个集合工具类
-
相关方法
-
Collections.sort(List list) 将集合进行升序排序
-
Collections.sort(List list, Comparator com) 自定义排序
-
Collections.reverse(List list) 将集合元素进行反转
-
七、Set接口
-
也是Collection下的子接口
-
特点:无序,无下标,元素不可重复
-
常用方法:Set的常用方法基本都是继承自Collection
八、Set接口的实现类
(一)HashSet
-
特点: 无序,不重复,无下标
-
数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry
-
去重机制:hashCode()方法 + equals()方法
(二) LinkedHashSet
-
特点:不能重复,无下标 ,但是有序(元素插入数据顺序是有序的)
-
数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry
-
去重机制 :hashCode()方法 + equals()方法
(三)TreeSet
-
特点:不能重复,无下标,有序(可以自动对集合中存入元素进行自然排序<升序>,元素必须实现Comparable接口)
-
数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry,当链表中元素过多时,会通过二叉树进行排序
-
去重机制:根据Comparable接口中的compareTo()方法,方法返回值去过为0则表示对象相同
-
compareTo() 比较器:
-
返回值大于0 升序
-
返回值等于0 相等,去重 ,
-
返回值小于0 降序
-
九、Map
-
特点:一个元素由两个对象构成,分别作为key和value,无序,无下标,键不可以重复,值可以重复,通过键来访问
-
常用方法
-
put(Object key,Object value) :往Map中存放一个元素
-
get(Object key) 通过指定的key获取当前集合中的value
-
remove(Object key) 通过指定的key删除当前集合中的元素
-
size() 获取集合中元素的个数
-
keySet() : 将集合中所有的key转换成一个Set集合
-
entrySet(): 将集合中所有元素转换成一个Set集合
-
values(): 将集合中所有的value 转换成一个Collection集合
-
containsKey(Object key): 当前集合中是否包含指定的key
-
containsValue(Object value):当前集合中是否包含指定的value
-
-
遍历Map集合的四种方式
-
遍历所有的key keySet()
-
遍历所有的键值对 entrySet()
-
遍历所有的value values()
-
forEach()遍历
-
十、Map接口的实现类
(一)HashMap(重点)
-
特点:无序,不重复,无下标
-
允许null作为key和value
-
JDK1.2提供,线程不安全
-
去重机制:hashCode() + equals()
(二)LinkedHashMap
-
特点:不重复,无下标,有序(可以保存元素的插入顺序)
-
允许null作为key和value
-
JDK1.2提供,线程不安全
-
去重机制:hashCode() + equals()
(三) TreeMap
-
特点:不重复,无下标,有序(对key自动排序(自然排序))
-
允许null作为key和value
-
JDK1.2提供,线程不安全
-
元素必须实现Comparable接口,并重写compareTo方法
-
去重机制:根据compareTo方法,如果返回值为0则是同一个对象
(四)Properties
-
一般会创*.properties文件作为配置文件
-
Prpperties是用于读取*.properties文件的
相关文章:

day34 集合总结
集合总结 一、概述 作用:存储对象的容器,代替数组的,使用更加的便捷 所处的位置:java.util 体系结构 二、Collection 内部的每一个元素都得是引用数据类型 常用方法 add(Object o) 添加元素 addAll(Collection c) 将指定集…...

【JAVA】 图书管理系统(javaSE简易版 内含画图分析) | 期末大作业课程设计
作者主页:paper jie 的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…...

区块链技术与应用 - 学习笔记3【比特币数据结构】
大家好,我是比特桃。本系列笔记只专注于探讨研究区块链技术原理,不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划,在“加快数字发展 建设数字中国”篇章中,区块链被列为“十四五”七大数字经济重点产业之一&#…...

Ubuntu下高效Vim的搭建(离线版)
软件界面 可以看到界面下方有一些常用提示信息:文件路径、format、文件类型、光标所在的坐标(x,y)、进度条(百分比)、日期时间 会提示已定义的变量名词(快速补全) 搭建方法 下载资源文件 把Vim 和 .vimrc 拷贝到家目录下,并执行tar -xvf Vim 即可。 …...

阿里云和腾讯云2核2G服务器价格和性能对比
2核2G云服务器可以选择阿里云服务器或腾讯云服务器,腾讯云轻量2核2G3M带宽服务器95元一年,阿里云轻量2核2G3M带宽优惠价108元一年,不只是轻量应用服务器,阿里云还可以选择ECS云服务器u1,腾讯云也可以选择CVM标准型S5云…...

PYTHON(一)——认识python、基础知识
一、为什么要学习python? Python 被认为是人工智能、机器学习的首选语言,可以说是全世界最流行通用范围最广的语言,几乎可以完成所有的任务,像设计游戏、建网站、造机器人甚至人工智能等都广泛使用Python。 二、输出(…...

Python 操作 Excel
之前看过一篇文章,说一个工作多年的老员工,处理数据时只会用复制粘贴到 Excel ,天天加班工作还完不成,后来公司就招了一个会 Python 的新人,结果分分钟就处理完成。所以工作中大家经常会使用 Excel 去处理以及展示数据…...

21.添加websocket模块
这里默认读者了解websocket协议,若是还不了解可以看下这篇文章wesocket协议。 websocket主要有三个步骤,1通过HTTP进行握手连接,2进行双向通信,3.协商断开连接 第一步的握手连接需要HTTP,所以还需要使用到上一节讲解…...

Linux UDP编程流程
文章目录 UDP编程流程UDP协议无连接的特点UDP协议数据报的特点 UDP编程流程 UDP 提供的是无连接、不可靠的、数据报服务。服务器端和客户端没有什么本质上的区别。编程流程如下: socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOC…...

【opencv】多版本安装
安装opencv3.2.0以及对应的付费模块 一、安装多版本OpenCV如何切换 按照如下步骤安装的OpenCV,在CMakeLists.txt文件中,直接指定opencv的版本就可以找到相应版本的OpenCV,为了验证可以在CMakeLists.txt文件中使用如下指令输出版本验证&…...

webpack打包常用配置项
webpack打包配置项 参考链接 文件结构:最基础版 先安装 npm i webpack webpack-cli --dev 运行命令:npx webpack 进行打包 1. 配置webpack.config.js文件: const path require(path); module.exports {mode: development, // 开发环境 …...

回归预测 | MATLAB实现MPA-BiGRU海洋捕食者算法优化双向门控循环单元多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现MPA-BiGRU海洋捕食者算法优化双向门控循环单元多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现MPA-BiGRU海洋捕食者算法优化双向门控循环单元多输入单输出回归预测(多指标,多图&a…...
selenium_webdriver自动化测试指南
目录 1 引言 4 1.1 目的.. 4 1.2 背景.. 4 1.3 参考资料.. 4 2 安装并引用Selenium2. 5...

红米Note12Turbo解锁BL刷入PixelExperience原生ROM系统详细教程
红米Note12Turbo的兄弟是国外POCO F5 机型,并且该机性价比非常高,国内外销量也还可以,自然不缺第三方ROM适配。目前大家心心念念的原生PixelExperience已成功发布,并且相对来说,适配程度较高,已经达到日用的…...

NoSQL之Redis配置与优化(一)
关系数据库与非关系型数据库 : ●关系型数据库: 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于…...

Boost搜索引擎
项目背景 先说一下什么是搜索引擎,很简单,就是我们平常使用的百度,我们把自己想要所有的内容输入进去,百度给我们返回相关的内容.百度一般给我们返回哪些内容呢?这里很简单,我们先来看一下. 搜索引擎基本原理 这里我们简单的说一下我们的搜索引擎的基本原理. 我们给服务器发…...
侧边栏的文章分类、热门文章和热门文章的展示(Go 搭建 qiucode.cn 之九)
早就有言,秋码记录 虽早已不是原来的面貌,但这终究是不防碍我们使用golang来搭建它。 而又为什么是使用golang呢?并非是其他编程语言呢?想必 时候回答【我为什么要学习 Go 语言(golang)】这个问题了 已经给出了答案! 当然,当初学习golang时,不单单是为了搭建一个博客应…...
LeetCode——贪心篇(二)
刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 134. 加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗…...
Linux find
1.find介绍 linux查找命令find是linux运维中很重要、很常用的命令之一,find用于根据指定条件的匹配参数来搜索和查找文件和目录列表,我们可以通过权限、用户、用户组、文件类型、日期、大小等条件来查找文件。 2.find语法 find语法 find [查找路径] …...
UE4实现断线重连功能
断线重连的整体逻辑是 设备离线后,根据需要决定是否保留pawn,还是设备重连后再重新生成一个,然后是断线重连时的验证方式,最后是playerstate重连后的属性保留 重载Playercontroller的PawnLeavingGame,这里是设备断线后࿰…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...