集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
队列,集合,映射类的定义主要是在java.util.*包下。
(1)队列
队列的各种运用集中在java.util.List接口及其子类,我们现在最常用的是java.util.Arraylist类,你可以将任何东西放到一个List容器中,并在需要时从中取出。ArrayList从其命名中可以看出它是一种类似数组的形式以线性方式进行存储,因此它的随机访问速度极快;尽管它是有序的但不同的是其长度不像数组一样是固定的,我们可以随时添加或删减队列中的元素,又因为他是有序的,所以对于有相同值的元素,只要其顺序是不同的,他们就可以同时存在,即队列元素是可重复的。
(2)集合(狭义)
集合(狭义)的各种运用集中在java.util.set接口及其子类,我们现在最常用的是java.util.Hashset类,集合(狭义)的对象不按特定方式排序是无序的,只是简单的把对象加入集合中,因而对象在存放处散乱无章。因为无序,所以Set中不能存在两个一样的对象,即Set元素唯一。且其长度不固定,可以通过一定的方法增加或删减元素。附:我们在集合中放入对象是是有次序的,但打印出时,不是我们放入的次序,这说明集合中的对象是无序的----我们无法得知其真实顺序。
(3)映射
映射(map)是一种把键对象和值对象进行关联的容器 ,一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所对应的值对象可能会发生变化,这时会按照最后一次修改的值对象与键对应。对于值对象则没有唯一性的要求。你可以将任意多个键都映射到一个值对象上,这不会发生任何问题(不过对你的使用却可能会造成不便,你不知道你得到的到底是那一个键所对应的值对象)。