JAVA基础---集合(一)--集合框架概述

来源:互联网 发布:淘宝阿里旺旺下载安装 编辑:程序博客网 时间:2024/04/29 00:33

集合主要四大类:
(Collection, List, Set, Map)
为什么用集合如何合理用集合,以及如何实现的和他们的实现原理,如果搞清了对于之后学习其他知识和开发是很有大帮助性的。
进入学习第一阶段(如果有基础了可以跳到第二阶段下一篇)
1.1 集合框架概述
1.1.1 容器简介
当面临问题需要决定如何存储对象的集合时,必须考虑如下问题。
对于对象集合,必须执行的操作主要以下三种:
u 添加新的对象
u 删除对象
u 查找对象
我们必须确定如何将新的对象添加到集合中。可以将对象添加到集合的末尾、开头或者中间的某个逻辑位置。
从集合中删除一个对象后,对象集合中现有对象会有什么影响呢?可能必须将内存移来移去,或者就在现有对象所驻留的内存位置下一个“洞”。
在内存中建立对象集合后,必须确定如何定位特定对象。
这个时候我们学java基础的时候学过数组那么这个时候数组可以用到么?
有个问题:数组的长度取决于创建的时候决定长度是一定的,那么如果对于不确定的数据不知道长度和大小,这个时候数组就不方便扩展和维护以及支持性能差。
而且我们知道数组的第二个问题就是每个元素是有个下标相当于每个下标对应一个元素,那么这个时候如果出现重复元素也可以存储,我们不想要重复元素的话还需要剔除
第三个问题就是我想要得到不光是元素还有元素的其他信息数组实现会更加困难。
综述:
1. 数组只能存储同一种 数据类型的数据。
2. 数组是会给存储到数组中 的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1;
3. 数组一旦初始化,长度固定。
4. 数组中的元素与元素之间的内存地址是连续的。
5.数组的可重复性。
不满足了需要,那就需要开启集合学习。
1.1.2 容器的分类
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:
1) Collection 。 一组对立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set 不能有重复元素。
2) Map 。 一组 成对的“键值对”对象。初看起来这似乎应该是一个Collection ,其元素是成对的对象,但是这样的设计实现起来太笨拙了,于是我们将Map明确的提取出来形成一个独立的概念。另一方面,如果使用Collection 表示Map的部分内容,会便于查看此部分内容。因此Map一样容易扩展成多维Map ,无需增加新的概念,只要让Map中的键值对的每个“值”也是一个Map即可。
Collection和Map的区别在于容器中每个位置保存的元素个数。Collection 每个位置只能保存一个元素(对象)。此类容器包括:List ,它以特定的顺序保存一组元素;Set 则是元素不能重复。
Map保存的是“键值对”,就像一个小型数据库。我们可以通过“键”找到该键对应的“值”。
u Collection – 对象之间没有指定的顺序,允许重复元素。
u Set – 对象之间没有指定的顺序,不允许重复元素
u List– 对象之间有指定的顺序,允许重复元素,并引入位置下标。
u Map – 接口用于保存关键字(Key)和数值(Value)的集合,集合中的每个对象加入时都提供数值和关键字。Map 接口既不继承 Set 也不继承 Collection。
List、Set、Map共同的实现基础是Object数组
除了四个历史集合类外,Java 2 框架还引入了六个集合实现,如下表所示。
这里写图片描述

接口实现历史集合类SetHashSetTreeSetListArrayListVectorLinkedListStackMapHashMapHashtableTreeMapProperties
这里没有 Collection 接口的实现,接下来我们再来看一下下面的这张关于集合框架的大图:
这里写图片描述

0 0