一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中
Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。
集合的特征:
1)这种框架是高性能的
2)框架必须允许不同类型的集合以相同的方式和高度互操作方式工作
3)集合必须是容易扩展和修改的
Java 集合可分为 Collection 和 Map 两种体系
Collection接口:
Set:元素无序、不可重复的集合 ---类似高中的“集合”
List:元素有序,可重复的集合 ---”动态”数组
Map接口:具有映射关系“key-value对”的集合 ---类似于高中的“函数” y = f(x) (x1,y1) (x2,y2)
Collection接口继承树
Map接口继承树
为什么集合类没有实现 Cloneable 和 Serializable 接口?
集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。
克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的。因此,应该由集合类的具体实现来决定如何被克隆或者是序列化。