====================================
* 将一组引用类型数据收集在一起,放在一个集合工具内部,
按特定数据结构来存储一组数据 java1.5增加了对泛型的支持
数组也是按特定数据结构来存储一组数据的,
但是数组长度是不可变的,所以用起来有局限性
所以在数据长度不确定时用数组来存放和处理数据是很不方便的;
数组可以存储基本类型数据也可以存储引用类型数据
而集合只能存储引用类型数据,即只能存储对象
集合二大容器: Collection 和 Map
集合中常用的是:ArrayList,HashMap ,HashSet
|——Collection 接口 和Map接口同级(一个一个得装对象)
|- List 接口 有顺序可重复(即二个对象之间可以equals)独有下标访问方法
|- ArrayList 查询,顺序添加,删除效率高
内部有数组存放数据,是数组的升级版;
访问效率和LinkedList一样,修改效率可能低
|- LinkedList 双向链表结构,适合二端操作比较快
随机的插入,删除效率比较高。(不需要移位)
|—Queue 实现接口
|—Deque 实现接口
|—Vector:线程安全的ArrayList
|- Set 接口 没有顺序还不能重复
|- HashSet 无序不允许元素重复。(重写对象的HashCode,equals)
|-(SortedSet) TreeSet 有序 不能存放null可以对添加的元素进行排序(如何排
|—LinkedHashSet:能够保证元素添加的顺序。
|——Map 接口(一对一对得装对象)
|- HashMap <k,v>
|- (SortedMap)TreeMap 键不能为null
Iterator迭代器接口
Collections 集合工具类
主要操作:增删改查+排序
Collection接口:
集合中每一个元素为一个对象,这个接口将这些对象组织在一起,形成一维结构。
* 集合父类型 * List、Set 的通用方法定义
add(Object o) 往集合添加一个数据对象
isEmpty() 判断集合内部是否有数据对象
addAll(Collection)//将指定集合中的所有数据对象全部加入当前集合
clear() 清空集合内部所有数据对象
remove(Object element)删除集合内部一个数据对象
contains(Object o) 集合内部是否包含该数据对象
containsAll(Collection c)集合内部是否包含另外一个集合里面所有的数据对象
equals(Object o)//比较集合中所有数据是否相等
iterator()//获取迭代器实例
size() 内部对象的个数
toArray()//将集合内部所有数据对象转入一个新的Object对象数组
retainAll(Collection c)返回二个的