网站首页 > java教程 正文
在编程时,常常需要集中存放多个数据,起初我们使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了长度,那么这个数组长度就是不可变的。另外如果我们要保存具有映射关系的的数据,例如:成绩表:语文—79,数学—80,数组就有点不能胜任。
为了保存数量不确定的数据,以及保存具有映射关系的数据。Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。而面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。
Java集合类是一种特别有用的工具类,可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如栈、队列等。除此之外,Java集合还可以用于保存具有映射关系的关联数组。Java集合分为:Set、List和Map三种体系,其中Set代表无序、不可重复的集合;List代表有序、可重复的集合;Map则代表具有映射关系的集合。
集合类与数组不一样,数组元素可以是基本类型的数据,也可以是对象,而集合里只能保存对象。
Java的集合类主要由两个接口派生而来:Collection和Map。Collection和Map是Java集合框架的根接口,这两个接口有包含了一些子接口或实现类。
上图显示了Collection体系里的集合,其中Set和List接口都是Collection接口派生出的两个子接口,他们分别代表了无序集合和有序集合;Queue是Java提供的队列实现。
上图为Map体系结构示意图,所有的Map实现类用于保存具有映射关系的数据。Map保存的每项数据都是key-value两个值组成。Map中的key值是不可重复的,key用于标识集合里的每项数据。
对于Java的所有集合分类,可以分为三大类:
1、 set集合:类似于一个罐子,将对象存放在Set集合时,Set集合无法记住这个元素的顺序,所以Set里的元素不能重复。
2、 List集合:非常类似于数组,它可以记住每次添加的元素的顺序,不同于数组的是List的长度是可变的。
3、 Map集合:类似于中药橱柜,每个橱柜上的抽屉都带有标签,标签相当于key,抽屉相当于对象。可以根据key来找到对象。
对于Set、List、Queue和Map四种集合,最常用的类为:HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList、HashMap、TreeMap。
猜你喜欢
- 2024-09-10 java基础:ArrayList集合(java arraylist常用方法)
- 2024-09-10 Java 集合了解多少?(java集合的了解)
- 2024-09-10 还不懂Java集合框架?阿里架构师总结了这五点,看完至少能掌握99%
- 2024-09-10 Java 最细的集合类总结(java的集合类型)
- 2024-09-10 Java 集合图谱(java集合数据结构图解)
- 2024-09-10 java集合整理的详细说明(java集合类详解和使用)
- 2024-09-10 java集合超详解(java 集合详解)
- 2024-09-10 Java集合类(java集合类之list的arraylist之删除指定学生)
- 2024-09-10 Java 集合框架知识梳理(java 集合框架知识梳理图)
- 2024-09-10 Java入门教程-Java集合体系和容器分类
你 发表评论:
欢迎- 最近发表
-
- Mozilla Firefox 139 Beta已上线 提供更快的HTTP/3上传速度
- Win8专享拷贝能暂停,Win7其实也可以
- ASP.NET利用WEBUPLOADER实现超大文件分片上传、断点续传
- 河汉大大的《断点续传》-------黑暗哨兵和向导的绝美爱恋
- 用C# 实现断点续传 (HTTP)
- 开源断点续传下载软件FDM获推6.21.0.5639版更新
- 前端大文件切片上传,断点续传、秒传等解决方案,VUE中使用实例
- SpringBoot 实战:文件上传之秒传、断点续传、分片上传
- 一文搞定SpringBoot分片上传、断点续传、大文件极速秒传功能
- SPRING-BOOT实现HTTP大文件断点续传分片下载
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)