为什么使用集合框架
如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象——可以使用Java集合框架
Java集合框架包含的内容
Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
Java集合框架包含的内容
Map接口存储一组键值对象,提供key到value的映射
List接口的实现类
ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式,插入、删除元素时效率比较高
ArrayList集合类
新闻管理系统,需求如下:
可以存储各类新闻标题(包含ID、名称、创建者)
可以获取新闻标题的总数
可以逐条打印每条新闻标题的名称
确定存储方式
ArrayList类是List接口的一个具体实现类
ArrayList对象实现了可变大小的数组
随机访问和遍历元素时,它提供更好的性能
确定存储对象
创建类型:新闻标题
包含属性: ID、名称、创建者
ArrayList常用方法
Collection接口常用通用方法还有:clear()、isEmpty()、iterator()、toArray()
LinkedList集合类
新闻管理系统,需求如下
可以添加头条新闻标题
获取头条和最末条新闻标题
可以删除末条新闻标题
确定存储方式
LinkedList类是List接口的一个具体实现类
LinkedList 类用于创建链表数据结构
插入或者删除元素时,它提供更好的性能
LinkedList常用方法
Set接口
Set接口存储一组唯一,无序的对象
HashSet是Set接口常用的实现类
Set中存放对象的引用
Set接口如何判断加入对象是否已经存在呢?
采用对象的equals()方法比较两个对象是否相等
HashSet是Set接口常用的实现类
Set newsTitleSet = new HashSet();
NewTitle car = new NewTitle(1, "汽车", "管理员");
//增加元素
newsTitleSet.add(car);
//获取元素个数
System.out.println("新闻标题数目为:" + newsTitleList.size() + "条");
Set接口不存在get()方法
迭代器Iterator
如何遍历Set集合呢?
方法1:通过迭代器Iterator实现遍历
获取Iterator :Collection 接口的iterator()方法
Iterator的方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素
方法2:增强型for循环
总结
Collection 、List 、Set 、Map接口的联系和区别
ArrayList和LinkedList的异同之处及各自的应用场合
遍历集合的方法
泛型集合用法及好处