一.集合框架中包含的内容
大体框架如上图所示:
Collection 接口存储一组不唯一,无序的对象
List 接口存储一组不唯一,有序(插入顺序)的对象
Set 接口存储一组唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式。插入、删除元素时效率比较高
List接口常用方法:
LinkedList的特殊方法:
Set接口:
Set接口存储一组唯一,无序的对象
HashSet是Set接口常用的实现类
Set中存放对象的引用
Set set=new HashSet(); String s1=new String("java"); String s2=s1; String s3=new String(“java"); set.add(s1); set.add(s2); set.add(s3); System.out.println(set.size());
Set接口如何判断加入对象是否已经存在呢?
采用对象的equals()方法比较两个对象是否相等
Set set=new HashSet(); String s1=new String("java"); String s2=s1; String s3=new String ("java"); set.add(s1); set.add(s2); set.add(s3); System.out.println(set.size());
HashSet是Set接口常用的实现类:
Set newsTitleSet = new HashSet(); NewTitle car = new NewTitle(1, "汽车", "管理员"); //增加元素 newsTitleSet.add(car); //获取元素个数 System.out.println("新闻标题数目为:" + newsTitleSet.size() + “条");
小结:
1.集合框架有何好处?
可改变长度的数组
可以通过size()方法获取非null对象个数 插入add()、删除remove()、遍历、查询对象get(index)时,减少代码量
2.ArrayList遍历及随机访问效率高
LinkedList插入和删除效率高
Map接口:
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作(最常用的实现类是HashMap)
案例:
Map接口常用方法:
如何遍历Map集合呢?
方法1:通过迭代器Iterator实现遍历
获取Iterator :Collection 接口的iterator()方法
Iterator的方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素
增强for循环:
总结框架: