Javase | 集合-上
目录:
- 一、集合:
- 1.集合的概述
- 2.集合的分类
- 二、“单个方式”存储元素:
- 1.Collection
- 1.1 Collection的概述
- 1.2 Collection接口中常用的方法
- Iterator<T> iterator( )
- 1.3 Collection下的子接口
- 2.Iterable:
- 2.1 Iterable的概述
- 2.2 Iterable接口中常用的方法
- Iterator\<T> iterator( )
- 3.Iterator:
- 3.1 Iterator的概述
- 3.2 Iterator接口中常用的方法
- boolean hasNext( )
- T next( )
- void remove( )
- 4.List:
- 4.1 List集合的特点
- 4.2 List集合常用的“实现类”:
- ArrayList (实现类)
- LinkedList (实现类)
- Vector (实现类)
- 5.Set
- 5.1 Set集合的特点
- 5.2 Set集合常用的“实现类”
- HashSet (实现类)
- TreeSet (实现类)
- 5.3 Set集合下的"子接口"
- SortedSet
一、集合:
1.集合的概述
集合实际上就是一个容器,可以来 容纳其他类型的数据。
集合是一个载体,可以 一次容纳多个对象。集合中存储的是 引用数据类型。
集合 不能 直接存储基本数据类型,集合也 不能 直接存储java对象,集合中存储的都是java对象的内存地址。(集合中存储的是引用)
在实际开发中,假设连接数据库,数据库中有10条记录,假设把10条记录查询出来,在java程序会将10条数据封装成java对象,然后将java对象放进某个集合中, 将集合传到前端,然后遍历集合,将一个一个数据展现出来。 集合在这一过程中起到承载的作用。
使用不同的集合等于使用不同的数据结构。
java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到不同的数据结构 ( 数据存储的结构 ) 中,不同的数据结构,数据存储的方式不同。 如:数组、二叉树、链表、哈希表 这些都是常见的数据结构。new ArrayList(); //创建一个集合,底层是“数组”。 new LinkedList(); //创建一个集合,底层是“链表”。 new TreeSet(); //创建一个集合,底层是“二叉树”。
2.集合的分类
Java中 集合分类两大类:①以 “单个方式” 存储元素。 ②以 “键值对” 的方式存储元素。
以 “单个方式” 存储元素 :
“单个方式”存储元素,这“一类集合”的超级父接口是 : Collection。
(拓展:Collection接口本身的父接口:Iterable)
以 “键值对方式” 存储元素:
以“键值对”方式存储元素,这一类集合中超级父接口:java.util.Map。
二、“单个方式”存储元素:
1.Collection
1.1 Collection的概述
Collection : 是一个接口。
Collection : 是以“单个方式”存储元素的 “这一类集合” 的 超级父接口。
Collection 接口本身也是有父接口的,其的父接口是: Iterable接口。
可通过调用 iterator( )方法获得 “迭代器” 对象,获得迭代器对象的目的: 迭代/遍历 集合中的元素。
Collection 和 iterator 有关联关系。
1.2 Collection接口中常用的方法
Iterator iterator( )
- Iterator iterator( ) : 调用该iterator( )方法能返回一个 Iterator (迭代器)对象。获得迭代器对象的目的: 迭代/遍历 集合中的元素。
- 本质上:iterator( )方法是 Iterable接口中的方法,因Collection接口继承了Iterable接口,所以Collection也能调用该方法。
1.3 Collection下的子接口
Collection下的子接口有 :List、Set 等。
List、Set接口下有对应的实现类。
2.Iterable:
2.1 Iterable的概述
- Iterable : 是一个接口。Iterable 接口是 Collection 接口的 父接口。
- Iterable:可 迭代 的、可 遍历 的,所有集合都继承Iterable的含义是:所有集合都是可迭代的。
2.2 Iterable接口中常用的方法
Iterator<T> iterator( )
- Iterator iterator( ) : 调用该 iterator( ) 方法能返回一个 Iterator (迭代器)对象。
- 该iterator( )方法是Iterable接口本身拥有的方法。
3.Iterator:
3.1 Iterator的概述
- Iterator: 是一个接口。Iterator是集合的 迭代器对象。
- Iterator作为迭代器对象,其作用是:迭代/遍历集合。
3.2 Iterator接口中常用的方法
boolean hasNext( )
- boolean hasNext( ) : 如果仍有元素可以迭代,则返回 true。
T next( )
- T next( ) : 返回迭代的下一个元素。
void remove( )
- void remove( ) :从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
4.List:
4.1 List集合的特点
List集合存储元素的特点:
1.有序。有序说的是: 存进来是这个顺序,取出来也是这个顺序。(先进先出)。有序是因为List集合都有下标,下标从0开始,以1递增。
2.可重复。集合中元素 可重复出现。
3.存储的元素 “有” 下标。下标从0开始,以1递增。
4.2 List集合常用的“实现类”:
ArrayList (实现类)
- ArrayList集合底层采用了 “数组” 这种数据结构。
- ArrayList是 非线程安全 的。
LinkedList (实现类)
- LinkedList集合底层采用了“双向链表”这种数据结构。
Vector (实现类)
- Vector集合底层采用了 “数组” 这种数据结构。
- Vector是 线程安全 的。Vector所有的方法都有 synchronized 关键字修饰,所以是线程安全的,但是效率太低,现在保证线程安全有别的方案,Vector使用较少了。
5.Set
5.1 Set集合的特点
Sett集合存储元素的特点:
1.无序。无序说的是:无序表示存进去是这个顺序,取出来就不一定是这个顺序了。
2.不可重复。集合中元素 不可重复出现。
3.存储的元素 “没有” 下标。
5.2 Set集合常用的“实现类”
HashSet (实现类)
- HashSet类是Set接口的实现类。
- 实际上HashSet集合在new的时候,底层实际上new了一个HashMap集合。向HashSet中存储元素,实际上存储到HashMap集合中。
- HashMap集合是一个哈希表数据结构。
TreeSet (实现类)
- TreeSet类是SortedSet接口的实现类。
- TreeSet集合 底层 实际上是 TreeMap。new TreeSet集合时,底层实际上new了一个TreeMap集合,往TreeSet集合中放数据时,实际上是将数据放到TreeMap集合中。
- TreeMap集合底层采用了 “二叉树” 数据结构。
5.3 Set集合下的"子接口"
SortedSet
- SortedSet集合存储元素的特点:
由于继承了Set集合,所以它的特点是:也是 无序不重复,但是放在SortedSet集合中的元素可以自动排序,成为有序集合。放到该集合中的元素是自动按照大小顺序排序的。
相关文章:
Javase | 集合-上
目录: 一、集合:1.集合的概述2.集合的分类 二、“单个方式”存储元素:1.Collection1.1 Collection的概述1.2 Collection接口中常用的方法Iterator<T> iterator( ) 1.3 Collection下的子接口 2.Iterable:2.1 Iterable的概述2…...
Multitor:一款带有负载均衡功能的多Tor实例创建工具
关于Multitor Multitor是一款带有负载均衡功能的多Tor实例创建工具,Multitor的主要目的是以最快的速度完成大量Tor进程的初始化,并将大量实例应用到我们日常使用的程序中,例如Web浏览器和聊天工具等等。除此之外,在该工具的帮助下…...
AIGC专栏6——通过阿里云与AutoDL快速拉起Stable Diffusion和EasyPhoto
AIGC专栏6——通过阿里云与AutoDL快速拉起Stable Diffusion和EasyPhoto 学习前言Aliyun DSW快速拉起(新用户有三个月免费时间)1、拉起DSW2、运行Notebook3、一些小bug AutoDL快速拉起1、拉起AutoDL2、运行Notebook 学习前言 快速拉起AIGC服务 对 用户体…...
Mysql的逻辑架构、存储引擎
1. 逻辑架构剖析 1.1 服务器处理客户端请求 首先MySQL是典型的C/S架构,即Clinet/Server 架构,服务端程序使用的mysqld。 不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果是:客户端进程向服务器进程发送一段文…...
[ES6]模块
[ES6]模块 特点export 与 import基本用法导入导出基本方式导入导出等价方式html 导入 别名导出默认导出基本用法默认导出对象 复合使用import 命令的特点只读属性单例模式静态执行特性 在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模…...
物联网终端算法
物联网终端算法是指在物联网终端设备上运行的各种算法,包括数据采集、数据预处理、数据传输、数据存储、数据处理、数据分析等算法。以下是物联网终端算法的一些具体应用: 数据采集算法:用于采集各种传感器数据,包括温度、湿度、气…...
【面试刷题】——TCP三次握手,以及为什么要三次握手
TCP(传输控制协议)的三次握手是建立TCP连接的过程,它确保了通信双方的正常启动和参数协商。三次握手的过程如下: 客户端发送请求: 客户端首先向服务器发送一个特殊的TCP报文,称为SYN(同步&…...
算法系列-力扣206-单链表反转
题目说明 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 方法一:头插法反转链表 思路: 声明p指针指向原头节点,并将头节点置空;p指针循环原链表将元素用头节点插入法逐个插入head中&…...
网络基础-应用层协议-HTTP/HTTPS
HTTP/HTTPS HTTP基本概念协议格式请求报文请求方法请求资源地址协议版本 应答报文 常见Header常见状态码与状态描述Cookie&Sessionhttp协议特点 HTTPS基本概念对称加密与非对称加密数据摘要&数据指纹HTTPS工作过程探究只采用对称加密只采用非对称加密双方都采用非对称加…...
problen(5)ubuntu版本问题
浅浅记录一下这段时间的血和泪吧,大概耗时快一个月了吧,终于解决了...... 因为需要开启pwn之旅,需要在Ubuntu上安装一些东西,就是下面的一条命令: sudo pip3 install pwntools -i Simple Index(显示不太好了…...
写一篇nginx配置指南
nginx.conf配置 找到Nginx的安装目录下的nginx.conf文件,该文件负责Nginx的基础功能配置。 配置文件概述 Nginx的主配置文件(conf/nginx.conf)按以下结构组织: 配置块功能描述全局块与Nginx运行相关的全局设置events块与网络连接有关的设置http块代理…...
rhel8防火墙firewalld操作
1.查看默认区域 [rootlocalhost r]# firewall-cmd --get-default-zone public2.查看网卡关联的区域 [rootlocalhost r]# firewall-cmd --get-zone-of-interfaceifcfg-ens160 external 3.设置网卡的默认区域修改为work [rootlocalhost r]# firewall-cmd --zonework --change…...
OpenCV项目实战(2)— 如何用OpenCV实现弹球动画
前言:Hello大家好,我是小哥谈。OpenCV能够在画布上绘制静态的图形,例如,线段、矩形、正方形、圆形、多边形、文字等。那么,能不能让这些静态的图形移动起来?如果能,又该如何编写代码呢ÿ…...
golang iris框架 + linux后端运行
go mod init myappgo get github.com/kataras/iris/v12latestpackage mainimport "github.com/kataras/iris/v12"func main(){app : iris.New()app.Listen(":port") }打包应用 go build main.go开启服务 #nohup ./程序名称 nohup ./main关闭后台 #ps -e…...
linux shell操作- 02 常用命令及案例
文章目录 常用命令 续 常用命令 续 定时任务 通过文本编辑cron任务,实现定时操作 分 小时 天 月 星期 绝对路径sh or cmd* 表示每个xxx,如每个小时每小时的第三分钟执行cmd-> 03 * * * * /home/lauf/scraw.sh每天的第5、8个小时执行-> 00 5,8 * *…...
考研408 | 【计算机组成原理】 数据的表示和运算
进位计数制 十进制计数法: 推广:r进制计数法 任意进制-->十进制: 二进制<-->八进制、十六进制: 各种进制的常见书写方式: 十进制-->任意进制: 十进制-->二进制(拼凑法ÿ…...
【小沐学NLP】AI辅助编程工具汇总
文章目录 1、简介2、国内2.1 aiXcoder2.1.1 工具特点2.1.2 部署方式2.1.3 使用费用2.1.4 代码测试2.1.4.1 代码搜索引擎2.1.4.2 在线体验 2.2 CodeGeeX2.2.1 工具特点2.2.2 部署方式2.2.3 使用费用2.2.4 代码测试 2.3 Alibaba Cloud AI Coding Assistant(cosy&#…...
linux动态扩容系统盘(非lvm磁盘)
查看磁盘状态 执行df -Th查看磁盘情况 [rootiotdbtest1 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 7.7G 0 7.7G 0% /dev tmpfs tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs tmpfs …...
Gitlab仓库部署
Gitlab仓库部署 一、Gitlab的概述1、gitlab介绍2、gitlab主要功能3、gitlab和github的区别 二、部署环境1、安装依赖环境2、安装Postfix邮箱3、Gitlab优势4、Gitlab工作流程 三、Gitlab部署过程1、Yum安装Gitlab2、配置gitlab站点URL3、启动并访问Gitlab 四、Gitlab具体操作1、…...
Day46:项目-购物车案例
购物车案例 准备工作 首页默认加载,其余页面懒加载 调用defineStore方法构建store 入口main做对应配置,找指南,快速开始,把elementplus引入进来 import { createApp } from "vue"; import { createPinia } from &qu…...
【小沐学CAD】嵌入式UI开发工具:GL Studio
文章目录 1、简介2、软件功能3、应用行业3.1 航空3.2 汽车3.3 防御3.4 工业3.5 电力与能源3.6 医疗3.7 空间3.8 科技 结语 1、简介 https://disti.com/gl-studio/ DiSTI 是 HMI 软件、虚拟驾驶舱、仪表、信息娱乐、集群显示器和嵌入式 UI 解决方案的领先提供商。 而它的GL Stu…...
Python:Tornado框架之获取get和post的传参
一、获取get方式传参 import tornado.ioloop #导入tornado包 import tornado.web class MainHandle(tornado.web.RequestHandler):def get(self,id): #定义请求函数self.write("Hello %s!" %id)apptornado.web.Application([ #定义应用配置函数(r"/…...
JSON和全局异常处理
目录 1️⃣JSON 一、什么是json? 二、与javascript的关系 三、语法格式 四、注意事项 五、总结 六,使用json 1导入pom.xml依赖 2.配置spring-mvc.xml 3. ResponseBody注解使用 创建一个web层控制器 编写ClazzBiz 实现接口 测试: …...
骨传导耳机有害处吗、骨传导耳机真的不好用吗?
骨传导耳机没有害处。 骨传导耳机是通过将声音传递到颅骨,再由颅骨传递到内耳,从而达到听声音的效果,与传统的耳机不同。 因此,骨传导耳机不会直接对人的身体健康、耳朵产生压力和损伤,也不会影响耳道和中耳的正常功能…...
第一类曲面积分:曲面微元dσ与其投影面积微元dxdy之间的关系推导
第一类曲面积分:曲面微元dσ与其投影面积微元dxdy之间的关系推导 本篇博客精简自本人关于曲面积分的博客:详情见:曲面积分(Surface Integral) 曲面参数化(曲面上的每个点都使用起点为原点、终点为该曲面上的点的向量表示&#x…...
vue学习之Font Awesome图标
官方文档 https://fontawesome.com.cn/v5 Font Awesome 安装 cnpm install font-awesome/src/main.js 引入css import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;...
mysql内连接与外连接详解
内连接与外连接 内连接外连接 在数据库中,连接操作是一种把两个或者多个表的记录组合在一起的操作,常用的有内连接(Inner Join)、外连接(Outer Join)等。 内连接 内连接(Inner Join࿰…...
在Mujoco环境下详细实现PPO算法应用于Humanoid-v2的完整教程
第一部分:介绍 1. 背景介绍 MuJoCo,或称为多关节动力学与控制的物理引擎,已经成为了强化学习中仿真环境的首选工具。其精确的物理仿真和高效的速度使得研究者可以在这个环境下测试和验证各种算法。PPO,即近端策略优化,是一种深度强化学习中的策略优化方法。它解决了TRPO…...
怎么给网络加速
首先,按winr,调出运行窗口。 输入cmd,回车,再输入gpedit.msc,调出本地组策略编辑器。 点击计算机配置下的管理模版。 再点击网络。 再点击Qos数据包计划程序。 再点击限制可保留宽带。 选择已启用,再把带宽…...
golang for循环append的数据重复
原因,因为使用了& 需要增加一行,问题解决...
毕业论文 网站开发/怎么进行网络营销
1.引言万维网WWW(World Wide Web)是一个巨大的,分布全球的信息服务中心,正在以飞快的速度扩展。1998年WWW上拥有约3.5亿个文档[14],每天增加约1百万的文档[6],不到9个月的时间文档总…...
如何查询公司做没做网站/线上培训平台
惠普放出了webOS开源首个测试版,这次发布的测试版有两个版本,其中有个可运行在Ubuntu上的版本。官方说明能在Ubuntu11.04和12.04的32位下正常运行,暂且不支持其他桌面版和Server版。 安装:(查看官方说明) 1…...
门户网站营销特点/杭州seo公司服务
http://www.jianshu.com/p/25e678fa43d3 转载于:https://www.cnblogs.com/mafeng/p/7146306.html...
有什么网站可以免费建站免费建网站/百度百科查询
前言 weblogic反序列化主要有XMLDecoder和T3协议。先从T3协议开始,主要是CVE-2015-4852这个漏洞 环境搭建 https://blog.csdn.net/qq_41918771/article/details/117467957https://blog.csdn.net/weixin_45682070/article/details/123230456主要参考这两篇文章,第一篇是我写…...
建手机号码的网站/网站权重优化
Batch、Epoch和IterationBatch(批次)Epoch(轮次)Iteration(迭代)在深度学习中,Batch、Epoch和Iteration是非常重要的概念,它们是训练模型时的三个基本单位。以下是它们的概念、区别和…...
wordpress页面重定向循环/一份完整的市场调查方案
Web应用安全依然是互联网安全的最大威胁来源之一,除了传统的网页和APP,API和各种小程序也作为新的流量入口快速崛起,更多的流量入口和更易用的调用方式在提高web应用开发效率的同时也带来了更多和更复杂的安全问题。一方面,传统的…...