集合及泛型自测题

合集下载

java 泛型试题

java 泛型试题

1. 什么是Java泛型?Java泛型是一种在编译时提供类型检查的机制,它允许程序员在定义类、接口和方法时使用类型参数。

泛型的主要目的是提高代码的重用性和可读性。

2. 请解释Java泛型中的通配符(?)和问号(?extends T)的含义。

通配符(?)表示未知的类型。

问号(?extends T)表示类型参数是T或T的子类。

例如,List<? extends Number>表示这个列表可以包含Number类及其子类的元素。

3. 请解释Java泛型中的通配符(?)和问号(?super T)的含义。

通配符(?)表示未知的类型。

问号(?super T)表示类型参数是T或T的父类。

例如,List<? super Integer>表示这个列表可以包含Integer类及其父类的元素。

4. 请编写一个使用泛型的示例程序。

```javaimport java.util.ArrayList;import java.util.List;public class GenericExample {public static void main(String[] args) {List<String> stringList = new ArrayList<>();stringList.add("Hello");stringList.add("World");System.out.println(stringList);List<Integer> integerList = new ArrayList<>();integerList.add(1);integerList.add(2);System.out.println(integerList);}}```5. 请解释Java泛型中的限制通配符(<? super T, ? extends U>)的含义。

学士后Java集合框架和泛型习题答案

学士后Java集合框架和泛型习题答案

package entity;//学生类,属性为:姓名、性别、分数、年龄、班级public class Student {private String name;private String gender;private int score;private int age;private String classes;public Student(String name,String gender, int score,Stringclasses) { = name;this.gender = gender;this.score = score;this.classes = classes;}public Student(String name, String gender, int age, int score){ = name;this.gender = gender;this.age = age;this.score = score;}public Student(String name, int score) { = name;this.score = score;}public Student(String name) { = name;}protected String getName() {return name;}protected void setName(String name) { = name;}protected int getAge() {return age;}protected void setAge(int age) {this.age = age;}protected String getGender() {return gender;}protected void setGender(String gender) { this.gender = gender;}protected int getScore() {return score;}protected void setScore(int score) { this.score = score;}protected String getClasses() {return classes;}protected void setClasses(String classes) { this.classes = classes;}}第二题答案源码及运行效果截图:package entity;import java.util.HashMap;import java.util.Scanner;public class Homework2 {public static void main(String[] args) { HashMap<String,Student> students=new HashMap<String,Student>();Scanner input=new Scanner(System.in);Student stu1=new Student("杨过", 95);Student stu2=new Student("小龙女", 99);Student stu3=new Student("张无忌", 88);Student stu4=new Student("赵敏", 90);students.put("杨过", stu1);students.put("小龙女", stu2);students.put("张无忌", stu3);students.put("赵敏", stu4);System.out.println("请输入学生姓名:");String key=input.next();if(students.containsKey(key)){Student stu= students.get(key);System.out.println(stu.getName()+"的成绩是:"+stu.getScore());}System.out.println("----------所有学生的成绩是-----------");for(Object value:students.values()){Student stu=(Student) value;System.out.println(stu.getName()+"的成绩是:"+stu.getScore());}}}第三题答案源码及运行效果截图:package entity;import java.util.*;public class Homework3 {public static void main(String[] args) {List<Student> list1=new ArrayList<Student>();List<Student> list2=new ArrayList<Student>();List<Student> list3=new ArrayList<Student>();Student stu1=new Student("张三");Student stu2=new Student("李四");Student stu3=new Student("王五");Student stu4=new Student("成龙");Student stu5=new Student("李娜");Student stu6=new Student("张杰");Student stu7=new Student("刘德华");Student stu8=new Student("张学友");Student stu9=new Student("刘亦菲");list1.add(stu1);list1.add(stu2);list1.add(stu3);list2.add(stu4);list2.add(stu5);list2.add(stu6);list3.add(stu7);list3.add(stu8);list3.add(stu9);Map<String,List<Student>> map=new HashMap<String,List<Student>>();map.put("三年级一班", list1);map.put("三年级二班", list2);map.put("三年级三班", list3);System.out.println("输入班级名称:");Scanner input=new Scanner(System.in);String banji=input.next();System.out.println(banji+"学生列表:");List<Student> list=map.get(banji);for(Student stu:list){System.out.println(stu.getName());}}}第四题答案源码及运行效果截图:package entity;import java.util.*;import java.util.Scanner;public class Homework4 {public static void main(String[] args) {ArrayList<Student> list1=newArrayList<Student>();ArrayList<Student> list2=newArrayList<Student>();ArrayList<Student> list3=newArrayList<Student>();Student stu1=new Student("张三","男",20,85);Student stu2=new Student("李四","男",22,80);Student stu3=new Student("王五","男",24,88);Student stu4=new Student("成龙","男",26,95);Student stu5=new Student("李娜","女",24,99);Student stu6=new Student("张杰","男",23,88);Student stu7=new Student("刘德华","男",28,99);Student stu8=new Student("张学友","男",27,87);Student stu9=new Student("刘亦菲","女",24,97);list1.add(stu1);list1.add(stu2);list1.add(stu3);list2.add(stu4);list2.add(stu5);list2.add(stu6);list3.add(stu7);list3.add(stu8);list3.add(stu9);Map<String,ArrayList<Student>> map=newHashMap<String,ArrayList<Student>>();map.put("三年级一班", list1);map.put("三年级二班", list2);map.put("三年级三班", list3);System.out.println("输入班级名称:");Scanner input=new Scanner(System.in);String banji=input.next();System.out.println(banji+"学生列表:");ArrayList<Student> list=map.get(banji);for(Student stu:list){System.out.println(stu.getName()+"\t"+stu.getGender()+"\t"+stu.getAge());}}}。

集合与泛型上机练习的PPT

集合与泛型上机练习的PPT

∙使用Hashtable集合对象存储电脑信息∙员工数据输入第一部分练习1:使用Hashtable对象存储数据项问题编写一个电脑信息类:包括电脑的型号、价格和出厂日期。

程序应根据用户输入的型号来显示相应的电脑信息。

要求使用Hashtable对象存储电脑信息,并且按照型号排列输出,可以输入一个型号,程序检查判断集合中是否存在该型号的电脑,如果存在则显示具体信息。

分析指导教师分析解题思路可以创建一个包含电脑型号、价格和出厂日期的类Computer,电脑的详细信息再作为一个元素存在Hashtable集合中排列输出可以通过下面这种方式输出:(1)创建一个基于控制台的C#应用程序,命名为“HashtableExm”。

(2)创建Computer类。

(3)完整的代码如下:(4)通过从菜单中选择“生成”→“生成解决方案”,来生成该解决方案。

(5)通过从菜单中选择“调试”→“开始执行(不调试)”选项来执行此应用程序。

程序运行效果图指导教师检查学生进度练习2:员工数据输入问题在一个公司的员工管理系统中,通常会通过窗体输入员工的信息,包括员工的编号,姓名,部门,工资等情况。

现不使用数据库技术,使用SortedLis t来存储不同员工的信息,并且,录入的员工都显示在一个列表框中,还可以删除列表框中的员工,但是同时要删除SortedList对象中的员工,因此SortedLis t对象中的数据要与类表框的数据同步。

界面要求如图:员工信息输入在左边的文本框中输入数据以后,单击“添加”按钮可以把数据添加到SortedList对象中,同时姓名添加到右边列表框中;在右边的列表框中选择一个姓名信息,单击下方的“删除”按钮,可以把该员工删除,同时,SortedList对象中的员工信息也被删除。

推荐步骤:(1)先创建一个员工类Employee来保存员工属性。

(2)创建一个窗体,对照界面,添加相应的控件及其事件。

(3)窗体类完整的代码如下:(4)生成和执行此应用程序,效果如下图所示:程序运行结果图。

6Java第六单元练习题泛型与集合

6Java第六单元练习题泛型与集合

6泛型与集合6.1单项选择题1.可实现有序对象的操作就是?( )A.HashMapB.HashSetC.TreeMapD.Stack2.不就是迭代器接口(Iterator)所定义的方法就是( )。

A.hasNext()B.next()C.remove()D.nextElement()3.下面说法不正确的就是( )A.列表(List)、集合(Set)与映射(Map)都就是java、util包中的接口。

B.List接口就是可以包含重复元素的有序集合。

C.Set接口就是不包含重复元素的集合。

D.Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。

4.下面那些方法不就是接口Collection中已声明的方法( )A.添加元素的add(Object obj) 方法B.删除元素的remove(Object obj)方法C.得到元素个数的length()方法D.返回迭代器的iterator()方法,迭代器用于元素遍历5、下列关于容器的描述中,错误的就是( )A.容器就是由若干个组建与容器组成的B.容器就是对图形界面中界面元素的一种管理C.容器就是一种对指定宽与高的矩形范围D.容器都就是可以独立的窗口6、下列界面元素中,不就是容器的就是( )A、ListB、JFrameC、JDialogD、Panel7、应用程序的main方法中有以下语句,则输出的结果就是( )。

Hashtable hashtable=new Hashtable();hashtable、put("100","aaa");hashtable、put("200","bbb");hashtable、put("300","ccc");System、out、println(hashtable、get("300")、toString()+ hashtable、get("200")、toString()+ hashtable、get("100")、toString());A) aaa B) bbb C) ccc D) cccbbbaaa6.2判断题1.Map接口就是自Collection接口继承而来。

java的泛型与java的集合编程题

java的泛型与java的集合编程题

题目:深度探讨Java的泛型与集合编程题一、引言Java作为一种广泛使用的编程语言,其泛型与集合是非常重要的特性。

在编写Java程序时,对泛型与集合的理解和应用至关重要。

本文将深入探讨Java的泛型与集合编程题,帮助读者更深入地理解这一主题。

二、泛型的基本概念和用法1. 什么是泛型?泛型是Java语言中一种重要的特性,它允许我们在编写代码时使用参数化类型,从而提高代码的重用性和安全性。

通过泛型,我们可以在编译时检查类型安全,避免在运行时出现类型转换错误。

2. 泛型的基本用法在Java中,我们可以使用泛型来定义类、接口和方法。

定义一个泛型类可以使用以下语法:```javapublic class Box<T> {private T value;public void setValue(T value) {this.value = value;}public T getValue() {return value;}}```在上面的代码中,Box<T>就是一个泛型类,其中的T表示类型参数。

通过使用泛型,我们可以创建具有不同数据类型的Box对象,从而实现通用性和灵活性。

三、集合框架的基本概念和用法1. 什么是集合框架?集合框架是Java中用来存储和操作数据的一组接口和类。

它提供了一系列的数据结构(如List、Set、Map等)和算法。

在Java中,集合框架是非常常用的,我们几乎可以在所有的Java程序中看到它的身影。

2. 集合框架的基本用法我们可以使用集合框架来存储和操作数据。

可以使用List接口来存储一组有序的数据,使用Set接口来存储一组不重复的数据,使用Map接口来存储键值对等。

通过对集合框架的灵活运用,我们能够更加高效地处理数据。

四、深入理解泛型与集合的编程题1. 编程题1:使用泛型实现一个通用的栈要求:实现一个通用的栈类,能够存储任意类型的数据,并实现入栈、出栈等操作。

java第十九章泛型复习题答案

java第十九章泛型复习题答案

java第十九章泛型复习题答案Java泛型复习题答案1. 泛型是什么?泛型是Java语言中的一种特性,它允许在编译时对数据类型进行参数化,从而提高代码的复用性、安全性和可读性。

泛型使得集合类可以存储任意类型的数据,同时保证类型安全。

2. Java泛型中的类型参数有哪些限制?类型参数可以是类、接口或者类型变量。

但是,它们不能是基本数据类型(如int、double等),也不能是数组类型或者具体类(如String、Integer等)。

3. 泛型类和非泛型类的区别是什么?泛型类在声明时指定了类型参数,这使得它能够接受任意类型的数据。

而非泛型类则没有类型参数,它只能接受特定类型的数据。

泛型类提高了代码的复用性,因为同一个类可以用于不同的数据类型。

4. 如何定义一个泛型接口?定义泛型接口时,需要在接口名称后添加类型参数,格式为`<类型参数>`。

例如:```javapublic interface List<E> {void add(E e);E get(int index);}```5. 泛型方法是什么?泛型方法是在方法声明中指定类型参数的方法。

这允许方法接受任意类型的参数,并返回相应类型的结果。

泛型方法的类型参数只在方法级别有效。

6. 如何使用泛型方法?使用泛型方法时,需要在方法调用时指定实际的类型参数。

例如: ```javapublic static <T> void printArray(T[] array) {for (T item : array) {System.out.print(item + " ");}System.out.println();}```7. 为什么说泛型提高了代码的安全性?泛型通过在编译时检查类型,避免了类型转换的错误,从而提高了代码的安全性。

它减少了运行时类型转换异常的可能性,使得代码更加健壮。

8. 如何实现泛型的协变和逆变?协变和逆变是泛型类型参数的子类型关系。

Java集合面试问题40个「附答案」

Java集合面试问题40个「附答案」

Java集合面试问题40个「附答案」每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。

随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。

在保证线程平安的情况下使用泛型和并发集合类,Java已经经历了很久。

它还包括在Java并发包中,阻塞接口以及它们的实现。

集合框架的部分优点如下:(1)使用核心集合类降低开发本钱,而非实现我们自己的集合类。

(2)随着使用经过严格测试的集合框架类,代码质量会得到提高。

(3)通过使用JDK附带的集合类,可以降低代码维护本钱。

(4)复用性和可操作性。

Java1.5引入了泛型,所有的集合接口和实现都大量地使用它。

泛型允许我们为集合提供一个可以容纳的对象类型,因此,如果你添加其它类型的任何元素,它会在编译时报错。

这防止了在运行时出现ClassCastException,因为你将会在编译时得到报错信息。

泛型也使得代码整洁,我们不需要使用显式转换和instanceOf 操作符。

它也给运行时带来好处,因为不会产生类型检查的字节码指令。

Collection为集合层级的根接口。

一个集合代表一组对象,这些对象即为它的元素。

Java平台不提供这个接口任何直接的实现。

Set是一个不能包含重复元素的集合。

这个接口对数学集合抽象进展建模,被用来代表集合,就如一副牌。

List是一个有序集合,可以包含重复元素。

你可以通过它的索引来访问任何元素。

List更像长度动态变换的数组。

Map是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。

一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。

Collection接口指定一组对象,对象即为它的元素。

如何维护这些元素由Collection的详细实现决定。

集合测试题及答案

集合测试题及答案

集合测试题及答案一、单项选择题(每题2分,共10分)1. 集合A={1,2,3},集合B={2,3,4},则A∩B=()A. {1,2,3}B. {2,3}C. {1,4}D. {3,4}2. 集合A={1,2,3},集合B={2,3,4},则A∪B=()A. {1,2,3}B. {2,3}C. {1,2,3,4}D. {3,4}3. 集合A={1,2,3},集合B={2,3,4},则A⊆B是否成立?()A. 成立B. 不成立4. 集合A={1,2,3},集合B={2,3,4},则A⊂B是否成立?()A. 成立B. 不成立5. 集合A={1,2,3},集合B={2,3,4},则A∩B的元素个数为()A. 1B. 2C. 3D. 4二、填空题(每题2分,共10分)6. 若集合A={x|x是4的倍数},集合B={x|x是6的倍数},则A∩B=_________。

7. 集合A={1,3,5},B={2,4,6},则A∪B=_________。

8. 集合A={x|x^2-5x+6=0},解方程得A=_________。

9. 集合A={1,2,3},B={4,5,6},则A∩B=_________。

10. 集合A={x|x是小于10的正整数},则A的元素个数为_________。

三、解答题(每题10分,共20分)11. 已知集合A={1,2,3},B={3,4,5},求A∩B和A∪B,并说明理由。

12. 集合A={x|-2<x<5},B={x|x>3或x<0},求A∩B,并说明理由。

答案:一、单项选择题1. B2. C3. B4. B5. B二、填空题6. {x|x是12的倍数}7. {1,2,3,4,5,6}8. {2,3}9. ∅10. 9三、解答题11. A∩B={3},因为3是集合A和B的共同元素;A∪B={1,2,3,4,5},因为这些元素属于集合A或集合B。

12. A∩B={x|-2<x<0或3<x<5},因为这些元素同时满足集合A和B的条件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择题
1.在java中,( C )对象可以使用键/值的形式保存数据。

A:ArrayList
B: HashSet
C: HashMap
D: LinkedList
2.创建一个类,来存储唯一的对象元素,元素不需要保持特定顺序,但是必须唯一。


能满足这种要求的接口是:( AE ) 。

(多选)
A、Set
B、List
C、Map
D、Array
E、HashSet
3.以下不属于ArrayList的方法的是(C )
A: add() B: addAll()
C: addFirst() D: size();
4.下列声明语句错误的是(C )
A : List list=new ArrayList()
B: List<String> list=new LinkedList();
C: ArrayList al= new List();
D: Set set=(Set)new ArrayList()
5.欲构造ArrayList 类的一个实例,此类继承了List 接口,下列哪个方法是正确的(B )。

A: ArrayList myList=new Object( )
B: List myList=new ArrayList( )
C: ArrayList myList=new List( )
D: List myList=new List( )
填空题
6.Iterator通过调用hasNext() 判断是否有下一元素,并通过next() 方法取得
下一元素。

判断题
7.ArrayList 和LinkedList 都实现Cloneable 接口,都提供了两个构造函数,一个无参
的,一个接受另一个Collection。

(√)
8.Map接口不是Collection接口的继承(√)
简答题
9.List, Set, Map是否继承自Collection接口?
答:List,Set继承自Collection,Map不是。

List,Map比较常用:List是通过下标来访问元素,Map是通过键值进行访问元素。

应该不会同时都实现了Collection接口.
Collection是一个什么概念?还有Set在java中是怎样定义的?他是通过下标来访问元素还是通过键值来访问元素?
两者谁继承了Collection接口呢?或者有没有可能两者都继承了Collection接口?
时间不多了,我是这样写的:
Set,Map实现了Collection接口。

而List不需要实现Collection接口。

10.Collection 和Collections的区别。

答:Collection是一个接口,Collections是一个集合对象的工具类。

Collection是集合类的上级接口,继承于他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

相关文档
最新文档