重点知识:
1.Java中的集合类
2.Collection接口
①Set接口及实现类
②List接口及实现类
③集合的遍历
3.Collections类
4.Map接口
①Map接口及实现类
②相关实现类的比较
5.泛型的使用
一、Java中的集合类
Java中集合框架层次结构
二、Collection接口
1.一组称为元素的对象。一个Collection中可以放不同类型的数据。Collection接口是Set接口和List接口的父类。
2.List接口--无序可重复,不唯一
①Collection的子接口,用来包含一组有序有重复的对象
②List中的元素都对应一个整数型的序号,记载其在容器中的位置,可以根据序号存取容器中的元素
③List有两种主要的集合实现类:ArrayList、LinkedList
是数据结构中链表的java实现。相对于List来说,LinkedList最主要的功能方面的增强是可以在List的开头和尾部添加、删除、取得元素;直接提供了这些方法的实现。所以它可以方便的实现我们数据结构中常见的Stack(栈)、queue(队列)等
(1)ArrayList是线性顺序存储的,是一种线性表。它的特性和数组很接近,区别是:数组大小是不变的,Array List的大小是可以动态改变的
(2)ArrayList的构造方法:
ArrayList 变量名=new ArrayList();
ArrayList 变量名=new ArrayList(int capacity);
ArrayList 变量名=new ArrayList(Collection c);
(3)LinkedList的构造方法
LinkedList 变量名=new LinkedList();
LinkedList 变量名=new LinkedList(Collection c);
(4)List接口的常见实现类
3.Set接口--无序不重复,唯一
①Set接口是Collection的子接口;用来包含一组无序不重复的对象
无序--是指元素存入顺序和集合内存储的顺序不同
无重复--两个对象e1和e2,如果e1.equals(e2)返回true,则认为e1和e2重复
三、Collections类
1.Collections类是类似于Arrays类的公用工具类,它提供了一些static方法供集合类使用或操作集合类
2.Collections类中的方法
3.Iterator接口
四、Map接口
1.Map内存储的是键/值对这样以成对的对象组(可以把一组对象当成一个元素),通过“键”对象来查询“值”对象
2.Map是不同于Collection的另外一种集合接口
3.Map中,Key值是唯一的(不能重复),而key对象是与value对象关联在一起的
4.Map接口有两个实现:
HashMap—key/value对是按照Hash算法存储的
TreeMap—key/value对是排序(按key排序)存储的
5.Map接口中的方法
五、泛型的使用
1.泛型经常被称为参数化类型,它能够像方法一样接受不同类型的参数
2.定义方式
ArrayList<E> 变量名;
其中,E是变量类型
例:ArrayList<String> arr;
arr=new ArrayList<String>();
HashMap<integer,String> hm=new HashMap<Integer,String>();
3.集合在使用上的问题
①集合中的add()方法接受的是一个Object对象的参数,在获取集合中的对象时,必须进行强制类型转换操作。
4.集合中泛型的使用
①在对象放入集合前,为其做个限制
②在获取集合中的对象时,不用进行强制类型转换
③当有不同类型的对象添加到集合中的时候,编译时就能检查出错误
六、集合类的选择
1.Set内存放的元素不允许重复,List存放的元素有一定的顺序
2.Map的应用主要在利用键/值对进行快速查询
3.ArrayList和LinkedList的区别在于随机查询性能上ArrayList要好,但LinkedList的中间元素插入与删除性能好
4.HsahSet和TreeSet的区别在于集合内元素是否排序
七、集合中的异常