集合
集合
1.是什么?容器,存储数据。主要是放对象,当前台访问,将数据封装到一个对象,而对象可能是多个,在与数据库进行交互时,一般都用集合来存放数据。它的长度可变。
2.与数据比较:【1】 数组一旦声明,其长度固定,类型一致,不够灵活;【2】数组的插入,删除效率低。
3.底层原理:
4.分类:
(1)Collection:总的接口:无序且不唯一:两个子接口:List和Set。还有一个不常用的Vector接口。
List接口:有序但不唯一,添加顺序,有两个实现类:
ArryList:有序,不唯一;底层是数组。查询,修改快。
LinkList:无序,唯一。底层是链表。添加删除快。
Set接口:无序,唯一,两个实现类:HashSet和TreeSet。
HashSet:无序唯一,底层数据结构为哈希表。重写hashCode和equals方法。
TreeSet:有序唯一,底层为二叉树,但必须实现Comparable或Comparator接口。
(2)Map接口:键值对key,value形式存储数据,键不能重复,值可以。分别两个实现类:
HashSet:底层为哈希表,key无序,唯一。
TreeSet: 底层为二叉树,key有序,唯一。
(3)方法获得该对象的哈希码表,然后根据哈希吗找到相应的存储区域,最后取得该存储区域内的每个元素与该对象进行equals方法比较;
5.迭代器:collection继承iterable接口,遍历器。
(1)for(Iterator it=col1.iterator();it.hasNext();){
System.out.print(it.next()+"\t");
};
(2)加强for循环。
6.方法:
* 【1】增 add(Object obj) addAll(Collection col),add(int index,Object obj)
* 【2】删 clear(), remove(Object obj) ,Object remove(int index)
* 【3】改 set(int index,Object obj)
* 【4】查size(),itrator(), listIterator(),get(int index)
* 【5】判 isEmpty(),contains(Object obj)