1、为什么使用集合
面向对象语言使用对象体现事物,存储对象可以使用数组,但是数组的长度是固定的,存储的对象类型单一,不适用需求的变化,所以提供了集合。
2、集合和数组的区别
1)数组长度定义之后不能改变,集合长度可以改变
2)数组存储的元素必须是同一类,集合存储的元素可以是不同类
3)集合只能只能存储对象类型元素,不可存储基本数据类型数据,数组可以存储任何类型数据,平常使用集合存储整型或者浮点型的基本类型数据时,存储的元素会自动装箱成应用类型数据,然后存储到集合。
3、集合继承体系和结构
java提供多个集合类,他们的数据结构(数据的存储方式)不同,根据不同需求,使用不同的数据结构的集合。总体分为两大类集合,单列集合Collection和双列集合Map。Collection集合的数据结构针对元素有效,Map是双列集合,Map集合的数据结构只针对键有效,用来存储键值对元素。Map不能包含重复的键; 每个键可以映射到最多一个值。
4、 List集合
1)有序集合(不是指元素排序,而是存储逻辑上是有序的),因此可以通过整数索引(列表中的位置)访问元素,允许重复的元素。
2)由于其特定的数据结构,因此具有一些特殊的功能:获取指定位置的元素,可以在指定位置添加元素,具有列表迭代器,从指定元素位置获取迭代集合,可以删除指定位置的元素,修改指定位置的元素,根据位置截取子集合等。
3)遍历方法:迭代器、增强for、for循环结合size和get方法。
4)具有列表迭代器ListIterator,可以双向遍历集合,倒序遍历之前必须先正向遍历,此方法感觉无意义。
5、Set集合
1)无序集合,不包含重复元素的集合。
2)遍历方法:迭代器和增强for。
6、Map集合
1)Map集合用来存储键值对元素,键映射到值的对象。Map不能包含重复的键; 每个键可以映射到最多一个值。
2)遍历方法:先用keySet获取所有键,然后通过键获取值、先用entrySet方法获取一个Set集合,然后遍历。
接下来分别在功能方法的使用和底层原理两方面进行集合的详细介绍。