Java泛型集合课件PPT
- 格式:pptx
- 大小:389.43 KB
- 文档页数:10
1. 集合框架2. 集合操作——线性表1. 集合框架1.1. Collectionjava提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛。
这种数据结构成为集合:Collection。
Collection是一个接口,其定义了集合的相关功能方法。
1.1.1. addAll与containsAll方法集合也提供了批处理操作:addAll方法用于将给定集合中的所有元素添加到当前集合中,其方法定义为:例如:containsAll方法用于判断当前集合是否包含给定集合中的所有元素,若包含则返回true。
其方法定义为:01. b o o l e a n a d d A l l (C o l l e c t i o n c )01.C o l l e c t i o n <S t r i n g > c 1 = n e w A r r a y L i s t <S t r i n g >();02.c 1.ad d ("j a v a ");03.c 1.ad d ("c p p "); 04.c 1.ad d ("p h p ");05.c 1.ad d ("c #"); 06.c 1.ad d ("o b je c t i v e -c "); 07.S y s t e m .o u t .p r i n t l n (c 1); // [j a v a , c p p , p h p , c #, o b j e c t i v e -c ] 08.C o l l e c t i o n <S t r i n g > c 2 = n e w H a s h S e t <S t r i n g >(); 09.c 2.ad d A l l (c 1);10. S y s te m .o u t .p r i n t l n (c 2); // [c p p , p h p , c #, j a v a , o b j e c t i v e -c ]01. b o o l e a n c o n t a i n s A l l (C o l l e c t i o n c )Top例如:01.C o l l e c t i o n<S t r i n g>c1=n e w A r r a y L i s t<S t r i n g>();02.c1.a d d("j a v a");03.c1.a d d("c p p");04.c1.a d d("p h p");05.c1.a d d("c#");06.c1.a d d("o b j e c t i v e-c");07.S y s t e m.o u t.p r i n t l n(c1);//[j a v a,c p p,p h p,c#,o b j e c t i v e-c]08.C o l l e c t i o n<S t r i n g>c2=n e w A r r a y L i s t<S t r i n g>();09.c2.a d d("j a v a");10.c2.a d d("c p p");11.S y s t e m.o u t.p r i n t l n(c1.c o n t a i n s A l l(c2));//t r u e1.2. Iterator 迭代器Collection提供了一个遍历集合的通用方式,迭代器(Iterator)。
第8章 Java 泛型与集合类核心内容:1. 集合的作用与概念2. 泛型的作用与用法。
3. Set 、List 、Map 的用法4. Iterator 、Enumeration 的用法8.1 早期的集合类集合可理解为一个容器,该容器主要指映射(map )、集合(set )、列表(list )、散列表(hashtable )等抽象数据结构。
容器可以包含有多个元素,这些元素通常是一些Java 对象。
针对上述抽象数据结构所定义的一些标准编程接口称之为集合框架。
集合框架主要是由一组精心设计的接口、类和隐含在其中的算法所组成,通过它们可以采用集合的方式完成Java 对象的存储、获取、操作以及转换等功能。
集合框架的设计是严格按照面向对象的思想进行设计的,它对上述所提及的抽象数据结构和算法进行了封装。
封装的好处是提供一个易用的、标准的编程接口,使得在实际编程中不需要再定义类似的数据结构,直接引用集合框架中的接口即可,提高了编程的效率和质量。
此外还可以在集合框架的基础上完成如堆栈、队列和多线程安全访问等操作。
在集合框架中有几个基本的集合接口,分别是Collection 接口、List 接口、Set 接口和Map 接口,它们所构成的层次关系如图8-1所示。
图8-1 集合框架层次关系图(1) Collection 接口是一组允许重复的对象。
(2) Set 接口继承Collection ,但不允许集合中出现重复元素。
(3) List 接口继承Collection ,允许集合中有重复,并引入位置索引。
(4)Map 接口与Collection 接口无任何关系,Map 的典型应用是访问按关键字存储的值,所包含的是键—值对,而不是单个独立的元素。
作为对上述接口的实现,Java 语言目前主要提供下述类的定义,如表8-1所示Collection 接口Set 接口 List 接口Map 接口表8-1 集合接口及其类的实现接口集合类的实现历史集合类Set HashSetTreeSetList ArrayList V ectorLinkedList StackMap HashMap HashtableTreeMap由于在JDK1.5当中增加了泛型,我们把JDK1.5之前不支持泛型的集合类称之为早期集合类。
Java 泛型(generics)是JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
假定我们有这样一个需求:写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?答案是可以使用Java 泛型。
使用Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。
然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。
泛型方法你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。
根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。
下面是定义泛型方法的规则:所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的<E>)。
每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。
一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
泛型方法体的声明和其他方法一样。
注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。
实例下面的例子演示了如何使用泛型方法打印不同字符串的元素:编译以上代码,运行结果如下所示:有界的类型参数:可能有时候,你会想限制那些被允许传递到一个类型参数的类型种类范围。
例如,一个操作数字的方法可能只希望接受Number或者Number子类的实例。
这就是有界类型参数的目的。
要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。
实例下面的例子演示了"extends"如何使用在一般意义上的意思"extends"(类)或者"implements"(接口)。