06-集合框架(容器)
时间:2025-04-23
时间:2025-04-23
JAVA程序集合框架(容器)
Java语言程序设计-6:集合框架(容器)
2015/12/3
JAVA程序集合框架(容器)
一 大纲 为什么需要容器 容器的分类和使用 Collection Set List
Map
Collections类 Comparable接口 Iterator接口
2015/12/3
JAVA程序集合框架(容器)
二 为什么需要容器 数组存在两个缺陷 数组的长度难以扩充 数组中元素的类型必须一致
容器可以弥补数组的这两个缺陷 如:A[] array = new A[10],A是个Class要改变A[] 的长度为A[15] 耗时耗力,效率低2015/12/3 3
JAVA程序集合框架(容器)
三 容器的数学模型及Java的解决方案容器(集合)是将若干用途,性质相同或近似的“数据”组 合而成一个整体。 数学上,集合的类型可以归纳为三种: 集(Set) Set集合中不区分元素的顺序,不允许出现重复元素。
列表(List)List集合区分元素的顺序,且允许包含重复元素。 映射(Map)
映射中保存成对的“键-值”(key-value)信息,映射中不 能 包含重复的键,每个键智能映射一个值。
Java设计了三个接口来对应数学上的三种集合,这三个接 口分别为Set,List,Map2015/12/3 4
JAVA程序集合框架(容器)
四 容器的框架图(Java API) J2SDK所提供的容器API位于java.util包内 容器API的类结构图如下所示:
2015/12/3
JAVA程序集合框架(容器)
五 容器的框架图详解容器API
Collection接口定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。 Set中的数据对象没有顺序且不允许出现重复。 List中的数据对象有顺序且允许重复。
Map接口定了存储“键-值”(key-value)映 射对的方法。2015/12/3 6
JAVA程序集合框架(容器)
六 Collection接口中的方法-1 int size()返回collection中的元素数
boolean isEmpty(); Boolean containsAll(Collection c)判断形参c所指向的集合中所有的元素是否包含在当前的 集合中;
Iterator iterator();返回能够遍历当前集合所有元素的迭代器。2015/12/3 7
JAVA程序集合框架(容器)
七 Collection接口中的方法-2 Object[] toArray ()容器不是数组,不能通过下标访问容器中的元素返回一个包含colleciton中所有元素的数组 例:java
boolean add(Object e); boolean remove(Object o) boolean addAll(Collection c)把c中所有的元素添加到当前集合中
boolean removeAll(Collection c)2015/12/3 8
JAVA程序集合框架(容器)
八 Collection接口中的方法-3 void clear ()把当前容器中所有的元素清除
boolean equals(Object e); int hashCode()
2015/12/3
JAVA程序集合框架(容器)
九 List接口 List接口是Collection的子接口,实现List接口容器类中 的元素是有顺序的,而且可以重复。 List容器中的元素都对应一个整数序列号记载其在容器中 都位置可根据序列号存取容器中的元素
J2SDK所提供的List容器类有ArrayList,LinkList
2015/12/3
JAVA程序集合框架(容器)
十 Set接口 Set接口和List接口都是继承Collection
接口,所以Set和 List的很多方法是一样的。 List接口中有add,set,indexOf方法,但是Set接口中 却只有add方法,没有set,indexOf方法,因为Set是无
序不能重复的,不存在某元素具体位置这个概念。
2015/12/3
JAVA程序集合框架(容器)
十一 Map接口 Map接口描述了映射结构,Map允许以键集,值集或键 -值映射关系集的形式查看某个映射的内容。 主要方法:
2015/12/3
JAVA程序集合框架(容器)
十二 toString()方法例:TestToString.java
2015/12/3
JAVA程序集合框架(容器)
十三 Collection接口实现类示例
输出结果:
[zhangsan,123,66.6]2015/12/3 14
JAVA程序集合框架(容器)
十四 Collection接口实现类示例总结
强烈建议:所有添加到 Collection容器中的对象
都应重写父类Object的toString方法
2015/12/3
JAVA程序集合框架(容器)
十五 ArrayList与LinkedList的比较 ArrayList和LinkedList都实现了List接口中的方法,但两 者内部实现不同; ArrayList底层采用数组完成,而LinkedList则采是以一 般双向链表(double linked list)完成,其内每个对象除
了数据本身外,还有两个引用,分别指向前一个元素和后一个元素。 如果需要经常在List开始处增加元素,或在中间进行插入 和删除操作,我们应该使用linkedList,否则使用 ArrayList更快。
2015/12/3
…… 此处隐藏:315字,全部文档内容请下载后查看。喜欢就下载吧 ……上一篇:交房验房全套注意事项