Java期末考试试题及参考答案(07)
Posted 谷哥的小弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java期末考试试题及参考答案(07)相关的知识,希望对你有一定的参考价值。
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
一、填空题
1. ________ 是所有单列集合的父接口,它定义了单列集合(List和Set)通用的一些方法。
2.使用Iterator遍历集合时,首先需要调用________方法判断是否存在下一个元素,若存在下一个元素,则调用________方法取出该元素。
3.如果要对TreeSet集合中的对象进行排序,必须实现________接口。
4.Map集合中的元素都是成对出现的,并且都是以________、________ 的映射关系存在。
5.ArrayList内部封装了一个长度可变的________。
二、判断题
1.Set集合是通过键值对的方式来存储对象的。
2.ArrayList集合查询元素的速度很快,但是增删改查效率较低。
3.Set接口主要有两个实现类,分别是HashSet和TreeSet。
4.使用Collections工具类中的sort()方法可以对List集合进行排序。
5.java.util.TreeMap底层结构是红黑树(二叉树),由此来保证存贮数据的键的唯一性。
三、选择题
1.下列关于集合的描述中,错误的是( )
A、集合按照存储结构可以分为单列集合Collection和双列集合Map
B、List集合的特点是元素有序、元素可重复
C、Set集合的特点是元素无序并且不可重复
D、集合存储的对象必须是基本数据类型
2.下列关于ArrayList的描述中,错误的是( )
A、ArrayList集合可以看作一个长度可变的数组
B、ArrayList集合不适合做大量的增删操作
C、ArrayList集合查找元素非常便捷
D、ArrayList集合中的元素索引从1开始
3.下面关于java.util.HashMap类中的方法描述错误的是( )
A、containsKey(Object key)表示如果此映射包含对于指定的键,则返回 true
B、remove(Object key)表示从此映射中移除指定键的映射关系(如果存在)
C、values()表示返回此映射所包含的键的Collection视图
D、size()表示返回此映射中的键-值映射关系数
4.使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法( )
A、hasNext()
B、hash()
C、hasPrevious()
D、next()
5.阅读下面的代码:
public class Example
public static void main(String[] args)
String[] strs = "Tom", "Jerry", "Donald" ;
// foreach循环遍历数组
for (String str : strs)
str = "Tuffy";
System.out.println(strs[0]+ "," + strs[1] + "," + strs[2]);
程序的运行结果是( )
A. Tom,Jerry
B. Tom,Jerry, Tuffy
C. Tom,Jerry,Donald
D. 以上都不对
四、简答题
1.简述集合List、Set和Map的区别。
2.简述为什么ArrayList的增删操作比较慢,查找操作比较快。
五、编程题
- 编写一个程序,向ArrayList集合中添加元素,然后遍历输出这些元素。
- 请按照下列要求编写程序。
(1) 编写一个Student类,包含name和age属性,提供有参构造方法。
(2) 在Student类中,重写toString()方法,输出age和name的值。
(3) 在Student类中,重写hashCode()和equals()方法 。其中,hashCode()的返回值是name的hash值与age的和;equals()判断对象的name和age是否相同,相同则返回true不同返回false。
(4)最后编写一个测试类,创建一个HashSet< Student >对象hs,向hs中添加多个Student对象,假设有两个Student对象相等,输出HashSet,观察是否添加成功。
参考答案
一、
1.Collection
2.hashNext() next()
3.Comparable
4.Key(键)、Value(值)
5.数组
二、
1.错
2.对
3.对
4.对
5.对
三、
1.D
2.D
3.C
4.A
5.C
四、
1.
List的特点是元素有序、可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。
2.
由于ArrayList集合的底层是使用一个数组来保存元素,在增加或删除指定位置的元素时,会导致创建新的数组,效率比较低,因此不适合做大量的增删操作。但这种数组的结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合查找元素很便捷。
五、
1.
Example.java
public class Example
public static void main(String[] args)
ArrayList list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("a");
for(Iterator it = list.iterator();it.hasNext();)
System.out.println(it.next());
Test.java
import java.util.*;
class Student
private int age;
private String name;
public Student(int age, String name)
this.age = age;
this.name = name;
public String toString()
return age + ":" + name;
public int hashCode()
return name.hashCode() + age;
public boolean equals(Object obj)
if (this == obj)
return true;
if (!(obj instanceof Student))
return false;
Student stu = (Student) obj;
return this.name.equals(stu.name) && this.age == stu.age;
public class Test
public static void main(String[] args)
HashSet<Student> hs = new HashSet<Student>();
hs.add(new Student(18, "zhangsan"));
hs.add(new Student(20, "lisa"));
hs.add(new Student(20, "lisa"));
System.out.println(hs);
以上是关于Java期末考试试题及参考答案(07)的主要内容,如果未能解决你的问题,请参考以下文章