【Java集合 1】java集合有哪些

AI摘要

这篇博客详细介绍了Java集合框架,包括数组与集合的区别、Collection接口、Set、List、Map的使用及内部实现,如HashMap、Hashtable、ConcurrentHashMap的原理与区别。此外,还解答了关于迭代器、列表迭代器的问题,以及为什么在多线程环境下推荐使用HashTable而不是Vector。

目录

一、数组Array和集合的区别

二、Java集合

三、Collection接口

四、Set

五、List

六、list和set对比

七、map

1、map接口不是Collection接口的继承。

2、Map.Entry 接口

3、HashMap 类和 TreeMap 类

4、map的使用示例

5、控制台输出

八、HashMap、Hashtable、ConcurrentHashMap的原理与区别

1、HashTable

2、HashMap

3、ConcurrentHashMap

九、解惑

1、什么是iterator

2、Iterator与ListIterator有什么区别?

3、HashMap与HashTable有什么区别?

4、在Hashtable上下文中同步是什么意思?

5、为什么Vector不推荐使用?


一、数组Array和集合的区别

1、数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)

2、JAVA集合可以存储和操作数目不固定的一组数据。

3、若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。 

注:使用相应的toArray()和Arrays.asList()方法可以相互转换。

二、Java集合

Java中提供了数组,但数组的长度是不可变的,如果需要保存数量变化的数据,数组显然是不合适的。如果想保存具有映射关系的数据,比如:name=哪吒编程,language=java等,用数组存放,显然也不是很合理。

为了解决此问题,Java引入了集合的概念,Java集合类都位于java.util包下,有一套规定好的数据结构框架,包含大量的集合接口,以及如何操作它们的实现类。

数组和集合最大的差别就是:

1. 数组可以存储基本数据类型,也可以存储对象类型;
2. 集合存储的是对象的引用变量,也就是对象类型;

Java集合框架分为Collection和Map,它们是Java集合的根接口,Collection和Map又包含了一些子接口和实现类。

java零基础从入门到精通(全) 目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 类体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的一个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre 阅读详情

相关推荐

Java学习路线总结(思维导图篇)

优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。

学Java,找哪吒 19万+

【Java集合 1】Java集合,Collection接口,Iterator接口

全网最细Java零基础手把手入门教程,系列课程包括:基础篇、集合篇、Java8新特性、多线程、代码实战,持续更新中(每周1-2篇),适合零基础和进阶提升的同学。

学Java,找哪吒 5215

无人机中继传输数据链技术,(无人机+自组网)远距离传输技术实现详解

无人机中继传输数据链技术是指利用无人机作为空中移动中继节点,在需要通信的区域上空悬停或移动,以建立和维护通信链路,从而扩展通信范围、提高通信质量和灵活性。1. 通信链路:是无人机中继通信的重要组成部分,包括源节点到中继节点的链路和中继节点到目标节点的链路。同时,它还支持空中到地面的通信,距离大于100km。总的来说,无人机中继传输数据链技术和(无人机+自组网)远距离传输技术都是现代无人机通信领域的重要技术,它们的应用极大地扩展了无人机的通信范围和灵活性,为各种应用场景提供了强有力的支持。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 2079

【IPAM】Netbox docker模式版本升级

NETBOX 是一个开源的网络资源管理系统,主要用于管理 IP 地址、机架、设备、接口等网络资源信息。下面是 NETBOX 的功能、优点和缺点的详细介绍。

u012153104的博客 1329

ChatBI实战:如何用Vanna和WrenAI搭建企业级智能问数系统(附避坑指南)

本文详细介绍了如何利用Vanna和WrenAI搭建企业级智能问数系统(ChatBI),解决多源异构数据整合、语义理解准确率和系统性能安全等核心挑战。通过实战案例和优化策略,展示了这一组合方案在提升查询效率、实现业务自主分析和动态探索式分析方面的显著优势,特别适合企业级数据查询需求。

weixin_29047919的博客 398

Clipper库中文帮助文档

引言: 第一次接触Clipper,主要是想用来处理DXF中的图形,网上也有博友翻译过,但是可惜打不开,好像那个网站https://love2.io凉凉了,但是优快云上也有博友分享了CHM,看着只剩3个下载币的我好无奈,一怒之下花费两天的时间将英文CHM也翻译了一遍,主要还是想在翻译的同时好好的理解Clipper,为使用打下坚实的基础。当然我也会无私的奉献出来。 简单的认识一下Clipper:...

zefllj的博客 3421

SAP LSMW数据批导操作手册及跨客户端传输方法(涉及默认值配置,及多余字段如何删除)

SAP LSMW数据批导操作手册及跨客户端传输方法

我好像病了的博客 6084

自己的搭建的slam机器人建图导航测试

1、前言 这里是对自己搭建的slam机器人建图导航的功能测试,原本并不想写这一篇的,因为每个小伙伴的需求都不一样,但是发现还是有同学有需求,于是就有了这一篇。本篇属于说明分享类文章,不涉及细节解释。按照步骤操作即可。 本次测试需要建图算法my_slam_gmapping、导航框架navigation、以及explore_lite功能包、mbot_teleop键盘控制功能包等。 环境:ubuntu mate 16.04 + ROS Kinetic 功能包下载:在公众号:小白学移动机器人,发送:建图导航测试,即

「小白学移动机器人」一个专注分享移动机器人相关知识的公众号! 8699

OpenClaw用户必看:每天0成本使用OpenClaw!NVIDIA NIM免费大模型接入教程

🚀 OpenClaw接入NVIDIA NIM免费API!glm5、minimax-m2.5等大量模型任选,0成本升级AI助手!💰

XiaoqiangClub的博客 5573

基于Simulink建模仿真的滑模控制的磁悬浮轴承稳定控制仿真

磁悬浮轴承(Magnetic Bearing)利用电磁力来支撑和定位转子,无需机械接触,因此在高速旋转设备中具有广泛应用。滑模控制(Sliding Mode Control, SMC)是一种鲁棒性强的非线性控制方法,适用于磁悬浮轴承的精确控制。以下是基于Simulink的磁悬浮轴承滑模控制系统的详细设计与仿真步骤。通过上述步骤,设计并实现了基于 Simulink 和 Control System Toolbox 的磁悬浮轴承滑模控制系统。

MHD0815的博客 778

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 【源码分析设计模式 12】JDBC中的桥接模式
下一篇: 【源码分析设计模式 13】命令模式
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2933原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值