6Java第六单元练习题-泛型与集合
第6章 字典和集合习题(含答案及解析)

第6章字典和集合习题一、选择题。
1.以下选项中,不是建立字典的方式是( )A)d = {[1,2]:1, [3,4]:3}B)d = {(1,2):1, (3,4):3}C)d = {'张三':1, '李四':2}D)d = {1:[1,2], 3:[3,4]}正确答案: A解析:字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
2.以下表达式,正确定义了一个集合数据对象的是:( )A) x = { 200, ’flg’, 20.3}B) x = ( 200, ’flg’, 20.3)C) x = [ 200, ’flg’, 20.3 ]D) x = {‘flg’ : 20.3}正确答案: A解析:集合(set)是一个无序的不重复元素序列。
元素之间用逗号隔开,序列用大括号 { } 括起来。
3.给出如下代码:DictColor = {“seashell”:“海贝色”,“gold”:“金色”,“pink”:“粉红色”,“brown”:“棕色”,“purple”:“紫色”,“tomato”:“西红柿色”} 以下选项中能输出“海贝色”的是( )A)print(DictColor.keys())B)print(DictColor[“海贝色”])C)print(DictColor.values())D)print(DictColor[“seashell”])正确答案: D解析:可使用查找操作符([ ])进行访问字典,即依次指定字典名和放在方括号内的键进行访问。
4.下面代码的输出结果是( )d ={"大海":"蓝色", "天空":"灰色","大地":"黑色"}print(d["大地"],d.get("大地","黄色"))A)黑的灰色B)黑色黑色C)黑色蓝色D)黑色黄色正确答案: B解析:访问字典有两种方式,一是使用查找操作符([ ])进行访问,即依次指定字典名和放在方括号内的键进行访问;二是使用函数get(key, default=None)获取指定键的值,参数default 用于指定当要查询的键不存在时,此方法返回的默认值。
java集合框架(习题与答案)

java 集合框架(习题)集合框架Key Point* Collection接口、Set 接口、List 接口基本操作* List 接口及其实现类* Set 接口及其实现类* 迭代遍历* Hash 算法与hashCode方法* Comparable接口* Map 接口及其实现类* 遍历Map* 泛型练习1. 填空Collection接口的特点是元素是对象;List 接口的特点是元素有(有|无)顺序,可以(可以|不可以)重复;Set 接口的特点是元素无(有|无)顺序,不可以(可以|不可以)重复;Map 接口的特点是元素是键值对,其中值可以重复,键不可以重复。
2. (List)有如下代码import java.util.*;public classTestLi st{public static void main(String args[]){List list = new ArrayL ist();list.add(“Hello”);list.add(“World”);list.add(1, “Learn”);list.add(1,“Java”);printL ist(list);}public static void printL ist(List list){for(Object obj:list){String str=(String)obj;System.out.printl n(obj);}}}要求:1) 把//1 处的代码补充完整,要求输出li s t 中所有元素的内容2) 写出程序执行的结果Helloj ava LearnW orld3) 如果要把实现类由ArrayLis t换为Link edLis t,应该改哪里?A rrayLi st 和Linked List使用上有什么区别?实现上有什么区别?把实例化的语句改为ne w LinkedLi st();ArrayLi st 数组实现查询快增删慢Linked List链表实现查询慢增删快4) 如果要把实现类由ArrayLis t换为V ect or,应该改哪里?A rrayLi st 和V ecto r 使用上有什么区别?实现上有什么区别?ArrayLi st是线程不同步的,轻量级的,线程不安全,速度快V ector是线程同步的,多线程访问比较安全,速度慢3. (List)写出下面程序的运行结果import java.util.*;public classTestLi st{public static void main(String args[]){List list = new ArrayL ist();list.add(“Hello”);list.add(“World”);list.add(“Hello”);list.add(“Learn”);list.remove(“Hello”);list.remove(0);for(int i = 0; i<list.size(); i++){System.out.printl n(list.get(i));}}}HelloLearn4. (Set,List)import java.util.*;public classTestLi stSet{public static void main(String args[]){List list = new ArrayL ist();list.add(“Hello”);list.add(“Learn”);list.add(“Hello”);list.add(“Welcom e”);Set set = new HashSe t();set.addAll(list);System.out.printl n(set.size());}}选择正确答案A.编译不通过B.编译通过,运行时异常C.编译运行都正常,//输出Hash Set中不能放重复值D.编译运行都正常,输出45. (List)已知有一个W o rker类如下:public classWorker {privat e int age;privat e String name;privat e double salary;public Worker (){}public Worker (String name, int age, double salary){ = name;this.age = age;this.salary = salary;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getNam e() {return name;}public void setNam e(String name) { = name;}public double getSal ary(){return salary;}public void setSal ary(double salary){this.salary = salary;}public void work(){System.out.printl n(name+“work”);}}完成下面的要求1) 创建一个Li s t,在List中增加三个工人,基本信息如下:姓名年龄工资zhang3 18 3000li4 25 3500wang522 32002) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资33003) 删除wang5 的信息4) 利用for循环遍历,打印List中所有工人的信息5) 利用迭代遍历,对List中所有的工人调用work 方法。
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的泛型与集合编程题,帮助读者更深入地理解这一主题。
二、泛型的基本概念和用法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泛型题目

}
}
输出的结果是__________________________
A.
B.
C.
D.
E.
F.
Compilation fails
aAaAaAaAAaaAaA
AAaaAaAaAaaAaA
Given:
NumberNames nn = new NumberNames();
nn.put("one", 1);
System.out.println(nn.getNames());
public class NumberNames {
private HashMap<[ place here ][ place here ]> map =
String
Integer
int
>
>()
name
value
map
}
}
(6)
Place a result onto each call to indicate what would happen if the method call were inserted at line 9.
Note: Results can be used more than once.
Given the following Java code:
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
java 集合练习题

java 集合练习题在Java编程中,集合(Collection)是非常重要的数据结构,用于存储一组对象。
它们提供了许多有用的方法和功能,可以帮助我们有效地操作和管理数据。
本文将介绍一些Java集合的练习题,旨在帮助读者加深对集合的理解和应用。
练习题一:集合的创建和初始化请编写Java代码,实现以下功能:1. 创建一个ArrayList集合,用于存储整型数据。
2. 初始化这个ArrayList,使其包含以下元素:[1, 3, 5, 7, 9]。
3. 遍历ArrayList,将每个元素打印到控制台。
解答:```javaimport java.util.ArrayList;public class ArrayListExercise {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<>();numbers.add(1);numbers.add(3);numbers.add(5);numbers.add(7);numbers.add(9);for (int number : numbers) {System.out.println(number);}}}```练习题二:集合的添加和删除元素请编写Java代码,实现以下功能:1. 创建一个HashSet集合,用于存储字符串数据。
2. 初始化这个HashSet,使其包含以下元素:["apple", "banana", "orange"]。
3. 向HashSet中添加新元素:"grape"。
4. 从HashSet中删除元素:"banana"。
5. 遍历HashSet,将每个元素打印到控制台。
解答:```javaimport java.util.HashSet;public class HashSetExercise {public static void main(String[] args) {HashSet<String> fruits = new HashSet<>();fruits.add("apple");fruits.add("banana");fruits.add("orange");fruits.add("grape");fruits.remove("banana");for (String fruit : fruits) {System.out.println(fruit);}}}```练习题三:集合的查找和排序请编写Java代码,实现以下功能:1. 创建一个LinkedList集合,用于存储字符串数据。
Java集合-练习题

Java集合-练习题⼀、某中学有若⼲学⽣(学⽣对象放在⼀个List中),每个学⽣有⼀个姓名属性(String)、班级名称属性(String)和考试成绩属性(double)某次考试结束后,每个学⽣都获得了⼀个考试成绩。
遍历list集合,并把学⽣对象的属性打印出来//学⽣类public class Student {private String userName;private String gade;private double score;public Student() {super();}public Student(String userName, String gade, double score) {super();erName = userName;this.gade = gade;this.score = score;}public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getGade() {return gade;}public void setGade(String gade) {this.gade = gade;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}}//测试类import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test {public static void main(String[] args) {Student student1 = new Student("赵⼤", "01班", 60.0);Student student2 = new Student("钱⼆", "02班", 65.0);Student student3 = new Student("张三", "03班", 55.0);Student student4 = new Student("李四", "04班", 80.0);List list = new ArrayList();list.add(student1);list.add(student2);list.add(student3);list.add(student4);//三种遍历⽅法:for (int i = 0; i < list.size(); i++) {Student student = (Student) list.get(i);System.out.println(student.getUserName()+"\t"+student.getGade()+"\t"+student.getScore());}System.out.println("-----------------");for (Object object : list) {Student student =(Student) object;System.out.println(student.getUserName()+"\t"+student.getGade()+"\t"+student.getScore());}System.out.println("--------------------");Iterator iterator =list.iterator();while (iterator.hasNext()) {Student student = (Student) iterator.next();System.out.println(student.getUserName()+"\t"+student.getGade()+"\t"+student.getScore());}}}⼆、使⽤Scanner从控制台读取⼀个字符串,统计字符串中每个字符出现的次数,要求使⽤学习过的知识完成以上要求(实现思路根据Set、List、Map集合的特性完成)。
学士后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());}}}。
Java基础第6章编程题答案

第六章集合编程题1.遍历一个LinkedList集合,写一个可以删除所有与“tom”相同的元素的静态方法。
(集合中的元素自行添加)注意:不要使用for循环遍历删除,会出现删除不干净的情况【参考答案】import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;public class Test {public static void main(String[] args) {LinkedList<String> list=new LinkedList<String>();list.add("tom");list.add("jack");list.add("jone");list.add("tom");System.out.println(list);removes(list,"tom");System.out.println(list);}public static void removes(LinkedList<String> list, String s) {Iterator iterator = list.iterator();while (iterator.hasNext()) {String str = (String) iterator.next();if (str.equals(s)) {iterator.remove();}}}}2.如何判断两个集合是否有交集,并打印出他们的交集提示:判断这两个集合是否包含相同的对象或元素,可以使用retainAll方法:oldCourses.retainAll(newCoures)。
如果存在相同元素,oldCourses中仅保留相同的元素。
java练习题库

Java练习题库一、基础知识篇1.1 变量与数据类型1. 定义一个整型变量并赋值为10。
2. 声明一个浮点型变量并初始化为3.14。
3. 创建一个字符变量并赋值为'A'。
4. 使用字符串类型声明并初始化一个变量,内容为"Hello World"。
1.2 运算符5. 计算5 + 3 2的值。
6. 判断下列表达式的结果:10 > 5 && 8 < 6。
7. 编写一个程序,实现两个整数的交换。
8. 使用三元运算符判断一个数是奇数还是偶数。
1.3 控制结构9. 编写一个for循环,输出1到10的整数。
10. 使用while循环计算1到100的和。
11. 根据分数判断学生等级(优秀、良好、及格、不及格)。
12. 编写一个switch语句,根据月份输出对应的天数。
二、面向对象篇2.1 类与对象13. 创建一个名为Person的类,包含姓名和年龄属性。
14. 为Person类添加一个方法,用于打印个人信息。
15. 编写一个构造方法,为Person类初始化姓名和年龄。
16. 创建一个Student类,继承自Person类,并添加一个成绩属性。
2.2 封装、继承与多态17. 将Person类的姓名和年龄属性设置为私有,并提供对应的get和set方法。
18. 在Student类中重写toString方法,输出学生信息。
19. 定义一个接口Animal,包含一个方法eat()。
20. 创建两个类Cat和Dog,实现Animal接口,并分别实现eat()方法。
2.3 异常处理21. 编写一个程序,捕获并处理数组越界异常。
22. 创建一个自定义异常类MyException,并在适当的时候抛出异常。
23. 使用trycatchfinally结构编写一个读取文件的程序。
三、高级特性篇3.1 集合框架24. 使用ArrayList存储并遍历一组字符串。
25. 创建一个HashMap,存储学生姓名和成绩,并遍历输出。
Java程序设计课件:泛型与集合

List的常用方法
方法名 add(int index, E element) addAll(int index, Collection<?
extends E> c) get(int index)
indexOf(Object o)
lastIndexOf(Object o)
程序员使用集合框架提供的接口和类,在具体应 用时,不必考虑这些数据结构算法的实现细节, 只需用这些类创建对象并直接应用即可,这大大 提高了编程效率。
2023/12/28
8/35
6.2.1集合框架
核心接口主要有Collection、List、Set、 Queue、Deque和Map。
Collection
方法名 add(E e) clear() equals(Object o) isEmpty() size() iterator() hashCode() toArray() removeAll(Collection<?> c) retainAll(Collection<?> c) contains(Object o) remove(Object o) containsAll(Collection<?> c)
将集合 c中的所有元素添加到当前集合中,添加成功 返回true。
11/35 2023/12/28
Set 接口
Set接口用来描述数据结构中的集合。它具有 与 Collection 完全一样的接口,只是Set 不 保存重复的元素,向Set添加元素时,不保证 元素添加后与添加的顺序一致。实现它的常 用子类有TreeSet类和HashSet类。
remove(int index) set(int index, E element) listIterator()
java练习题

Java练习题一、基本语法1. 编写一个Java程序,输出“Hello, World!”。
2. 声明一个整型变量并赋值为10,然后输出该变量的值。
3. 编写一个Java程序,实现两个整数的加、减、乘、除运算。
4. 声明一个浮点型变量并赋值为3.14,然后输出该变量的值。
5. 编写一个Java程序,判断一个整数是奇数还是偶数。
6. 使用三元运算符计算两个整数中的较大值。
7. 编写一个Java程序,实现字符串的拼接。
8. 声明一个布尔型变量并赋值为true,然后输出该变量的值。
9. 编写一个Java程序,输出1到100的所有偶数。
10. 使用for循环输出九九乘法表。
二、数组与字符串1. 声明一个整型数组并初始化,然后输出数组中的所有元素。
2. 编写一个Java程序,实现数组的逆序输出。
3. 计算一个整型数组的平均值。
4. 编写一个Java程序,查找数组中的最大值和最小值。
5. 使用冒泡排序算法对整型数组进行排序。
6. 编写一个Java程序,实现字符串的反转。
7. 判断一个字符串是否为回文。
8. 输出一个字符串中字母和数字的个数。
9. 编写一个Java程序,实现字符串的截取。
10. 使用StringBuilder类拼接一个由100个“Java”组成的字符串。
三、面向对象1. 定义一个学生类(Student),包含姓名、年龄和成绩属性,并实现一个打印学生信息的方法。
2. 编写一个Java程序,创建一个学生对象并设置其属性,然后调用打印学生信息的方法。
3. 定义一个矩形类(Rectangle),包含长和宽属性,并实现计算面积和周长的方法。
4. 编写一个Java程序,创建两个矩形对象,并比较它们的面积大小。
5. 定义一个动物类(Animal),包含吃、睡和叫的方法,然后创建一个狗类(Dog)继承动物类,并重写叫的方法。
6. 编写一个Java程序,演示多态性,创建一个动物数组,包含狗和猫对象,并调用它们的叫方法。
实验6 泛型与集合框架_附答案

任务一:用LinkedList存放对象1.利用面向对象的思想,创建以下类:●Person类,包含Person的姓名和身份证号码,覆盖Object类的toString()方法,显示“姓名:XXX 身份证号:XXX”。
●Student类,继承Person类,包含学生的语文、数学、英文课的成绩,并覆盖父类的toString()方法,显示“姓名:XXX 身份证号:XXX 语文:XXX 数学:XXX 英文:XXX”。
●Teacher类,继承Person类,包含教师的工资。
并覆盖父类的toString()方法,显示“姓名:XXX 身份证号:XXX 工资:XXX”。
●public class Person implements Comparable{●String name;●String ID;●Person(String s,String i){●name=s;●ID=i; }●public String toString() {●String str="姓名:"+name+" 身份证号码:"+ID;●return str; }●public int compareTo(Object arg0) {●Person p=(Person)arg0;●return pareTo(p.ID); } }●class Student extends Person {●int Chinese;●int Math;●int English;●Student(String n,String i,int c,int m,int e){●super(n,i);●Chinese=c;●Math=m;●English=e; }●public String toString() {●String str;●str=" 语文成绩:"+Chinese+" 数学成绩:"+Math+" 英语成绩:"+English;●return super.toString()+str;●}●}●class Teacher extends Person{●int salary;●Teacher(String n,String i,int s){●super(n,i);●salary=s;●}●public String toString() {●String str=" 工资"+salary;●return super.toString()+str;●} }2.分别为以上三个类创建对象:3.将这三个对象存放在一个LinkedList对象中:LinkedList<Person> list=new LinkedList<Person>();4.运行示例:public class MyList {public static void main(String[] args) {LinkedList<Person> m=new LinkedList<Person>();Person p=new Person("张三","12310000");Student s=new Student("李四","12320000",89,93,94);Teacher t=new Teacher("王五","12330000",3000);m.add(p);m.add(s);m.add(t);Iterator<Person> i = m.iterator();while(i.hasNext()){System.out.println(i.next());}}}5.练习使用LinkedList的其他方法。
Java基础之集合测试

Java基础之集合测试单选题:(每道题目2分)1.下面哪个不是集合和数组的区别?a:集合长度可变b:子集就可以存储提及数据类型c:子集就可以存储一种提及数据类型d:子集可以存储相同提及数据类型2.collection中contains()方法的作用是?a:往集合中添加元素b:从集合中删除元素c:推论元素在子集中与否存有d:推论子集与否为空3.下面关于迭代器,说法错误的是?a:专门用于遍历数组b:专门用于遍历集合c:依赖于集合而存在d:内部类的方式实现4.list子集元素的特点就是?a:元素有序b:元素无序c:元素不容重复d:元素自然排序5.list集合的get()方法的作用是?a:获取第一个位置的元素b:获取最后一个位置的元素c:获取指定位置的元素d:获取中间位置的元素6.concurrentmodificationexception就是什么东西?a:空指针异常b:出访越界异常c:初始化异常d:mammalian修正异常7.下面哪个不属于常见的数据结构?a:栈b:队列c:链表d:圆8.arraylist子集的底层数据结构就是?a:数组b:链表c:哈希表中d:红黑一棵9.下面哪个不是vector的特有功能?a:addelement()b:add()c:elementat()d:elements()10.vector集合的特点是?a:线程同步b:线程不同步c:增删快d:底层结构就是链表11.linkedlist集合的特点是?a:查询快b:增删快c:元素唯一d:元素按比较器排序12.下面代码运行的结果是?arraylistal=newarraylist();al.add(true);al.add(123);al.add(\system.out.prin tln(al);a:编译失败b:[true,123,abc]c:[true,123]d:[abc]13.arraylist子集和vector子集的区别观点恰当的就是?a:arraylist就是线程安全的,vector就是线程不安全的b:arraylist就是线程不安全的,vector就是线程安全的c:arraylist底层结构就是数组,vector底层结构就是链表d:arraylist底层结构就是链表,vector底层结构就是数组14.下面代码运行的结果是?arraylistal=newarraylist();al.add(“a”);al.add(“b”);al.add(“c”);iteratorit=al.iterator();while(it.hasnext()){strings=(string)it.next();if(s.equals(“c”)){al.add(“c1”);}}system.out.println(al)a:编译失败b:[a,b,c]c:[a,b,c,c1]d:抛出concurrentmodificationexception异常15.set子集的特点就是?a:元素有序b:元素无序c:元素可以重复d:元素从大到小排序16.有关hashset子集的观点恰当的就是?a:底层数据结构就是链表b:底层数据结构就是数组c:元素就是重复的d:确保元素的唯一性依赖hashcode()和equals()17.有关treeset集合的说法错误的是?a:底层数据结构是红黑树b:元素可重复c:可以通过自然排序对元素进行排序d:可以通过比较器排序对元素进行排序18.有关map子集观点错误的就是?a:map子集由键值对共同组成b:map子集的键可以重复c:map子集的值可以重复d:map子集不是collection子集的子体系19.下面关于hashmap说法正确的是?a:底层数据结构是链表b:底层数据结构是数组c:可以允许null键和null值d:不允许null键和null值20.linkedhashmap子集的底层数据结构就是?a:数组b:栈c:红黑树d:链表和哈希表中多选题:(每道题目3分)21.下面哪些方法就是arraylist和linkedlist都有的?a:add()b:addfirst()c:get()d:iterator()22.以下有关增强for的说法正确的是?a:增强for是jdk5的新特性b:增强for可以直接遍历数组c:增强for可以直接遍历map集合d:进一步增强for可以轻易结点collection子集23.下面关于泛型的说法正确的是?a:泛型是jdk5的新特性b:泛型增强了程序的安全性c:泛型避免了强制类型转换d:泛型要求必须强制类型转换24.arraylist子集可以通过下面哪些方式展开结点a:iterator运算器同时实现b:进一步增强for同时实现c:get()和length()方法结合实现d:get()和size()方法结合实现25.map子集可以通过哪些方式展开结点?a:轻易通过运算器即可b:根据键找值的方式c:根据for循环轻易结点d:根据键值对对象打听键和值的方式简答题目:(每道题目3分)26:arraylist,vector以及linkedlist的特点?arraylist:底层数据结构是数组,查询快,增删慢线程不安全,效率高vector:底层数据结构就是数组,查阅慢,更动快线程安全,效率高linkedlist:底层数据结构是链表,查询慢,增删快线程不安全,效率高27:hashmap和hashtable的区别?a:hashmap线程不安全,效率高。
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 泛型试题Java泛型试题一、选择题1. 能使用泛型的是?A. 类B. 方法C. 接口D. 所有上述选项2. 下列关键字中用于定义泛型的是?A. classB. interfaceC. extendsD. <>3. 在Java中,泛型的作用是?A. 提高代码的可读性B. 提供编译时的类型检查C. 支持不同类型对象的统一操作D. 所有上述选项4. 下面哪个选项是泛型类的正确声明方式?A. class MyGenericClass<T, U>B. class MyGenericClass<T, U> extends MyGenericClass<T>C. class MyGenericClass extends T, UD. class MyGenericClass<T extends U>5. 下面哪个选项是泛型方法的正确声明方式?A. public void myMethod<T>(T value)B. public <T> void myMethod(T value)C. public void myMethod(T value) <T>D. public <T> void myMethod(void value)二、填空题1. 在泛型类中,T是什么意思?答:T代表类型参数,可以是任意指定的类型,比如T可以代表String、Integer等。
2. 在泛型方法中,可以使用什么字符代表类型参数?答:使用尖括号<>内的大写字母来表示类型参数,比如<T>。
3. 泛型类可以同时定义多个类型参数吗?是的话,应该怎么定义?答:是的,泛型类可以同时定义多个类型参数。
格式为class MyClass<T, U, V>。
4. 什么是泛型通配符?它的作用是什么?答:泛型通配符是一种特殊的类型参数,用`?`表示。
作业09-集合与泛型java

作业09-集合与泛型java1. 本周学习总结1.1 以你喜欢的⽅式(思维导图或其他)归纳总结集合与泛型相关内容。
2. 书⾯作业本次作业题集集合1. List中指定元素的删除(题集题⽬)1.1 实验总结。
并回答:列举⾄少2种在List中删除元素的⽅法。
使⽤line.split的⽅法对⼀⾏的元素进⾏分隔,在使⽤list⾥的remove进⾏删除相同元素。
⽅法⼀:使⽤list的remove(这⾥要注意get(i)的值)public static void remove(List<String> list, String str) { for(int i=0;i<list.size();i++) { if(list.get(i).equals(str)) { list.remove(str); i--; } } }⽅法⼆:使⽤迭代器的remove(此⽅法是借鉴的)public static void remove(List<String> list, String str) { for(int i=0;i<list.size();i++) { if(list.get(i).equals(str)) { list.remove(str); i--; } } }2. 统计⽂字中的单词数量并按出现次数排序(题集题⽬)2.1 伪代码(不得复制代码,否则扣分)Map<String,Integer> wordmap = new TreeMap<>();//建⽴hashmap; while(); if(equals())是 break; if(map.countiansKey(word))//判断重复 map.put(A+ map.get(A)+1) 转化为ArrayListList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(wordmap.entrySet()); 再使⽤Collections.sort的⽅法进⾏⽐较在使⽤for 进⾏遍历,使⽤tostring输出前⼗位2.2 实验总结先是要使⽤hashmap来进⾏key与value⼀⼀对应的关系,然后,要转化为ArrayList⽤Collections接⼝来实现排序。
java集合-练习题

1. 填空Collection 接口的特点是元素是__无序可重复_______;List 接口的特点是元素_有__顺序,__可以__重复;Set 接口的特点是元素_没有_顺序,__不可__重复;Map 接口的特点是元素是__映射______,其中_value_可以重复,_key_不可以重复。
2. (List)有如下代码import java.util.*;public class TestList{public static void main(String args[]){List list = new ArrayList();list.add(“Hello”);list.add(“World”);list.add(1, “Learn”);list.add(1, “Java”);printList(list);}public static void printList(List list){//1for(int i = 0; i< list.size();i++){System.out.println(list.get(i));}for(Object o : list) {System.out.println(o);}Iterator itor = list.iterator();while(itor.hasNext()){System.out.println(itor.next());}}}要求:1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容2) 写出程序执行的结果Hello Java Learn World3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别?4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使用上有什么区别?实现上有什么区别?3. (List)写出下面程序的运行结果import java.util.*;public class TestList{public static void main(String args[]){ List list = new ArrayList();list.add(“Hello”);list.add(“World”);list.add(“Hello”);list.add(“Learn”);list.remove(“Hello”);list.remove(0);for(int i = 0; i<list.size(); i++){ System.out.println(list.get(i));}}}Hello Learn结果:4.(Set,List)import java.util.*;public class TestListSet{public static void main(String args[]){ List list = new ArrayList();list.add(“Hello”);list.add(“Learn”);list.add(“Hello”);list.add(“Welcome”);Set set = new HashSet();set.addAll(list);System.out.println(set.size());}}选择正确答案 CA.编译不通过B.编译通过,运行时异常C.编译运行都正常,输出3D.编译运行都正常,输出45. (List)已知有一个Worker 类如下:public class Worker {private int age;private String name;private double salary;public Worker (){}public Worker (String name, int age, double salary){ = name;this.age = age;this.salary = salary;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public double getSalary(){return salary;}public void setSalary(double salary){this.salary = salary;}public void work(){System.out.println(name + “ work”);}}完成下面的要求1) 创建一个List,在List 中增加三个工人,基本信息如下:姓名年龄工资zhang3 18 3000li4 25 3500wang5 22 3200import java.util.ArrayList;import java.util.List;public class list {List<String> l=new ArrayList<String>();Work w1=new work(zhang3,18,3000);Work w2=new work(li4,25,3500);Work w3=new work(wangwu,22,3200);L.add(w1);L.add(w2);2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资33003) 删除wang5 的信息4) 利用for 循环遍历,打印List 中所有工人的信息5) 利用迭代遍历,对List 中所有的工人调用work 方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6泛型与集合
6.1单项选择题
1.可实现有序对象的操作是?()
A.HashMap B.HashSet C.TreeMap D.Stack
2.不是迭代器接口(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.List
B.JFrame
C.JDialog
D.Panel
7.应用程序的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) cccbbbaaa
6.2判断题
1.Map接口是自Collection接口继承而来。
(×)
2.集合Set是通过键-值对的方式来存储对象的。
(×)
3.Integer i = (Integer.valueOf("926")).intValue();(√)
4.String s = (Double.valueOf("3.1415926")).toString(); (√)
5.Integer I = Integer.parseInt("926");(√)
6.Arrays类主要对数组进行操作。
(√)
7.在集合中元素类型必须是相同的。
(√)
8.集合中可以包含相同的对象。
(×)
9.枚举接口定义了具有删除功能的方法。
(×)
6.3程序阅读题
1.阅读下面的程序,回答问题。
import java.util.*;
public class T {
public static void main(String args[]) {
Set set = new TreeSet();
set.add(new Integer(10));
set.add(new Integer(5));
set.add(new Integer(15));
set.add(new Integer(5));
set.add(new Integer(10));
System.out.println("size = " + set.size());
Iterator it=set.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
1)后输出的结果如何?
2)java中的集合(Set接口)和映射(Map接口)的主要区别。
6.4参考答案
6.4.1单项选择题
1.C
2.D
3.D
4.C
5.D
6.A
7.D
6.4.2判断题
1. ×
2. ×
3.√
4.√
5. √
6. √
7. √
8.√
9.×10. ×
6.4.3程序阅读题
1.答案:
1)size = 3
5 10 15
2)Set接口是不包含重复元素的集合;Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。