虚线框表示接口(或者抽象类),实线框表示实现类,粗实线框表示开发中常用的类。
Java 的集合类主要由 Collection 接口和 Map 接口派生而来,其中 Collection 接口有两个常用的子接口( List 和 Set )。所以通常说 Java 集合框架由三大类接口构成( List 接口、 Set 接口、 Map接口)。
多态:
上面(2)处 ArrayList list = new ArrayList(); 也可以写成 List list = new ArrayList(); 并导入 java.util.List 工具包。
这是将接口 List 的引用指向实现类 ArrayList 的对象,在编程中将接口的引用指向实现类的对象是 Java 实现多态的一种形式,也是软件开发过程中实现低耦合的方式之一。
为什么使用集合框架?
Java 集合框架
List 接口存储一组不唯一,有序 (插入顺序)的对象:
Set 接口存储一组唯一,无序的对象
Map 接口存储一组键值对象,提供 key 到 value 的映射
ArrayList 实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList 采用链表存储方式。插入、删除元素时效率比较高
ArrayList 集合类
实例一:展现 ArrayList 常用方法
实例二(实体类+实现类):新闻管理系统:1.可以储存各类新闻标题(包含 ID、名称、创建者);2.可以获取新闻标题总数;3.可以逐条打印新闻标题
LinkedList 集合类
LinkedList 常用方法:
实例:增、删、获取头条/末条新闻标题
Set 接口
HashSet 集合类
HashSet 集合类的常用方法:
附:Java集合框架_hashCode() & equals()
Iterator 迭代器
Iterator 接口的两个主要方法:
另外,凡是由 Collection 接口派生而来的接口或者实现类,都实现了
iterate()
方法,iterator()
方法返回一个 Iterator 对象。Map 接口
Map 接口的常用方法
实例:建立国家英文简称和中文全名间的键值映射,并通过 key 对 value 进行操作
泛型
泛型的定义语法:
实例一:
实例二:
泛型集合
泛型在集合中的应用: 例如在 List 接口中的
add()
方法的参数是 Object 类型,在通过get()
方法取出集合中的元素时必须进行强制类型转换,还可能出现 ClassCastException 异常。另外, Map 接口中使用put()
和get()
方法存取对象时,使用 Iterator 接口的next()
方法取元素时存在同样的问题。 使用泛型集合在创建集合对象时指定集合中元素的类型,从集合中取出时无需进行类型强制转换。如果把非指定类型对象放入集合,会出现编译错误。泛型类、泛型接口、泛型方法
泛型类
定义泛型类的的语法:
泛型接口
定义泛型接口的的语法:
泛型方法
定义泛型方法的语法:
实例: