1、习题一、 判断题1Java泛型的本质是参数化类型。 ( )2Java数组的协变性(covariant)是指如果类Base是类Sub的基类,那么Base就是Sub的基类。Java泛型也是协变的,就是说如果类Base是类Sub的基类,那么List就是List的基类。()3根据Java集合框架中的定义,Java Set集合中的元素是可以重复的。( )4Java List 集合与Java 数组相似,Java List 集合的长度也是固定的。()5List主要特征是其元素以线型方式存储,集合中可以存放重复的对象。( )6泛型类的构造方法仍然和普通类的构造方法形式是一样的,不带参数。( )7Java集合中
2、Map是一种把键对象和值对象进行映射的集合,他的每一个元素都包含一个键对象,一个值对象,键对象相当于值对象的索引,而且值对象不可以是Map类型的。( )8Java集合中ArrayList是长度可变的数组。可以对元素快速的随机访问。( )9,Java集合中Set最为主要的特征是集合中的对象不按照特定的方式排序,但是可以有重复的对象。( )10Java 语言在使用泛型类时必须指定泛型类型参数。( )二、填空题1定义泛型时,泛型参数放到尖括号中,其功能类似于方法的形参。在实例该类时要为参数传入实际参数,泛型参数的的实际参数只能是类类型,包括自定义的类型,而不能是 类型。2Java 泛型就是在定义 、
3、 时指定类型形参类型形参将在声明该类型变量、创建该类对象时确定,即传入类型实参。Java的参数化类型称为泛型(Generic Type 或Generic)。3Java SE 5.0 改写了集合框架中的全部接口和类,提供泛型支持,在声明集合变量、创建集合对象时,传入 。4如果Foo是Bar的一个子类型,G是一个Java泛型,那么,G G的子类,Foo Bar 的子类。5泛型可以被继承或实现,但是泛型作为父类或父接口时,不能再包含有 ,而只能包含有泛型实参。6Java编译器允许在使用泛型是不传入实际参数,在使用Java编译器javac编译时会产生 警告。可以通过使用编译器的 Xlint:unche
4、kched 选项查看详细信息。7泛型的类型参数的实参只能是类类型,不能是 。8Java集合类和数组不同,数组元素既可以是 类型,也可以是对象类型;而集合中的元素只能是 。9Java集合类主要由2个接口派生,一个是 ,另一个是 。10Java集合可分成 类,其中Set集合中的元素不能 ;List集合非常像 ;Mapj集合的元素由2个值组成,一个是 ,一个是 。11Iterator接口是Java集合框架中的成员,和Cllection、Map集合不一样,Iteratoer接口主要用于 Cllection 集合中的元素。Iterator 又称 。12Java 中除了可以使用Iterator接口的方式访
5、问Cllection集合类中的元素,Java 1.5 还提供了 循环来迭代访问Cllection集合中的元素。三、编程题1在程序中声明一个HashSet 集合类的对象hset,向hset中添加字符串元素“hello”,”world”,”你好”,“Java”,“Java 泛型”和“Java集合”。用hset 的iterator()方法生成迭代器it,使用it的hasNext()方法迭代输出集合中的元素。2使用foreach循环语句遍历输出上体中集合的元素。3定义一个具有一个参数的泛型类,在其中定义2个泛型方法,分别返回2个泛型形参的和与差,在main()函数中分别传入Double、Float、Integer类型实参,验证方法的执行。4在main()方法中分别声明HashSet、ArrayList和HashMap()集合,向集合中添加若干元素,然后输出各集合中所有元素。查看Java API文档,找到各种集合添加元素的方法,注意Map集合的元素为一个“键-值对”。Map集合输出元素的方法也不同Cllection集合类型。