集合框架

主宰稳场 提交于 2019-11-26 19:50:57

Java容器: 集合和数组都是一种容器,都是对多个数据进行存储的结构,简称Java容器
说明: 此时的存储主要指的是内存里面的存储,不涉及到持久化的存储(比如硬盘中的存储)(持久化存储涉及到具体的媒介,媒介指的是硬盘等一些持久化的设备),持久化的存储举例:比如把数据存储到.txt,.jpg,.avi文件,数据库当中

数组在存储多个数据方面的特点
1)一旦初始化以后长度就确定
2)一旦定义好,其元素类型也就确定了,只能放这种类型的数据,我们也就只能操作指定类型的数据了
注意: 可能会有多态性的情况出现,比如Object[],往里面装数据会表现多态性

数组在存储多个数据方面的缺点
1)一旦初始化后,其长度就不可以修改
2)数组中提供的方法非常有限,对于添加,插入,删除数据等操作,非常不便,效率不高
3)获取数组中实际元素的个数,数组没有现成的属性或方法可用
4)数组存储数据的特点:有序可重复,对于无序,不可重复的需求,数组不能满足
其实集合的源码中用的也是数组

Java 集合可分为 Collection 和 Map 两种体系(这两个体系是并列的)
接口定义的是规范
1)Collection接口(没有提供具体的实现类):
单列数据(存的是一个一个的数据(对象)(基本数据类型使用包装类的方式去存储)),单列集合,定义了存取一组对象的方法的集合,Collection在实际操作层面还要进一步细分
List接口:元素有序、可重复的集合,对标普通数组,习惯上叫动态数组
主要实现类:ArrayList,LinkedList,Vector
Set接口:元素无序、不可重复的集合,类似于数学中的集合
实现类:HashSet,LinkedHashSet,TreeSet
当然不止这两个子接口

2)Map(翻译为映射)接口(提供了具体的实现类)(没有提供子接口):
双列数据,双列集合,存储一对一对的数据,保存具有映射关系“key-value对”的集合,一个key对应一个value,类似于数学中的函数,x自变量相当于key,y因变量相当于value,不同的key可以指向相同的value,不能一个key对应不同的value
实现类:HashMap,LinkedHashMap,TreeMap,HashTable ,Properties

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!