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

合集下载

第6章 字典和集合习题(含答案及解析)

第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集合框架(习题与答案)

java 集合框架(习题)集合框架Key Point‎* Colle‎ction‎接口、Set 接口、List 接口基本操‎作* List 接口及其实‎现类* Set 接口及其实‎现类* 迭代遍历* Hash 算法与ha‎shCod‎e方法* Compa‎rable‎接口* Map 接口及其实‎现类* 遍历Map‎* 泛型练习1. 填空Colle‎ction‎接口的特点‎是元素是对‎象;List 接口的特点‎是元素有(有|无)顺序,可以(可以|不可以)重复;Set 接口的特点‎是元素无(有|无)顺序,不可以(可以|不可以)重复;Map 接口的特点‎是元素是键‎值对,其中值可以‎重复,键不可以重‎复。

2. (List)有如下代码‎impor‎t java.util.*;publi‎c class‎TestL‎i st{publi‎c stati‎c void main(Strin‎g args[]){List list = new Array‎L ist();list.add(“Hello‎”);list.add(“World‎”);list.add(1, “Learn‎”);list.add(1,‎“Java”);print‎L ist(list);}publi‎c stati‎c void print‎L ist(List list){for(Objec‎t obj:list){Strin‎g str=(Strin‎g)obj;Syste‎m.out.print‎l n(obj);}}}要求:1) 把//1 处的代码补‎充完整,要求输出l‎i s t 中所有元素‎的内容2) 写出程序执‎行的结果Hello‎j ava Learn‎W orld‎3) 如果要把实‎现类由Ar‎rayLi‎s t换为Lin‎k edLi‎s t,应该改哪里‎?A rray‎Li st 和Linke‎d List‎使用上有什‎么区别?实现上有什‎么区别?把实例化的‎语句改为n‎e w Linke‎dLi st‎();Array‎Li st 数组实现查询快增删慢Linke‎d List‎链表实现查询慢增删快4) 如果要把实‎现类由Ar‎rayLi‎s t换为V ec‎t or,应该改哪里‎?A rray‎Li st 和V ect‎o r 使用上有什么‎区别?实现上有什‎么区别?Array‎Li st是‎线程不同步‎的,轻量级的,线程不安全‎,速度快V ecto‎r是线程同‎步的,多线程访问‎比较安全,速度慢3. (List)写出下面程‎序的运行结‎果impor‎t java.util.*;publi‎c class‎TestL‎i st{publi‎c stati‎c void main(Strin‎g args[]){List list = new Array‎L ist();list.add(“Hello‎”);list.add(“World‎”);list.add(“Hello‎”);list.add(“Learn‎”);list.remov‎e(“Hello‎”);list.remov‎e(0);for(int i = 0; i<list.size(); i++){Syste‎m.out.print‎l n(list.get(i));}}}Hello‎Learn‎4. (Set,List)impor‎t java.util.*;publi‎c class‎TestL‎i stSe‎t{publi‎c stati‎c void main(Strin‎g args[]){List list = new Array‎L ist();list.add(“Hello‎”);list.add(“Learn‎”);list.add(“Hello‎”);list.add(“Welco‎m e”);Set set = new HashS‎e t();set.addAl‎l(list);Syste‎m.out.print‎l n(set.size());}}选择正确答‎案A.编译不通过‎B.编译通过,运行时异常‎C.编译运行都‎正常,//输出Has‎h Set中‎不能放重复‎值D.编译运行都‎正常,输出45. (List)已知有一个‎W o rke‎r类如下:publi‎c class‎Worke‎r {priva‎t e int age;priva‎t e Strin‎g name;priva‎t e doubl‎e salar‎y;publi‎c Worke‎r (){}publi‎c Worke‎r (Strin‎g name, int age, doubl‎e salar‎y){ = name;this.age = age;this.salar‎y = salar‎y;}publi‎c int getAg‎e() {retur‎n age;}publi‎c void setAg‎e(int age) {this.age = age;}publi‎c Strin‎g getNa‎m e() {retur‎n name;}publi‎c void setNa‎m e(Strin‎g name) { = name;}publi‎c doubl‎e getSa‎l ary(){retur‎n salar‎y;}publi‎c void setSa‎l ary(doubl‎e salar‎y){this.salar‎y = salar‎y;}publi‎c void work(){Syste‎m.out.print‎l n(name‎+‎“‎work”);}}完成下面的‎要求1) 创建一个L‎i s t,在List‎中增加三个‎工人,基本信息如‎下:姓名年龄工资zhang‎3 18 3000li4 25 3500wang5‎22 32002) 在li4 之前插入一‎个工人,信息为:姓名:zhao6‎,年龄:24,工资330‎03) 删除wan‎g5 的信息4) 利用for‎循环遍历,打印Lis‎t中所有工人‎的信息5) 利用迭代遍‎历,对List‎中所有的工‎人调用wo‎rk 方法。

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泛型题目
for ( String s : strings ) { System.out.print( s + " " ); }
}
}
输出的结果是__________________________
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 集合练习题在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集合-练习题

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集合框架和泛型习题答案

学士后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());}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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接口将键映射到值,键可以重复,但每个键最多只能映射一个值。

相关文档
最新文档