第六章 集合类(第五次作业)

一.单选题(共41题,36.9分)

1下列选项中,哪一个类是Properties类的直接父类(  )
正确答案: C 

答案解析:Hashtable类有一个子类Properties在实际应用中非常重要,Properties主要用来存储字符串类型的键和值。

2下面哪个对象不能直接获取java.util.Iterator迭代器。()

正确答案: D

答案解析:java.util.Iterator可以对collection接口实现类进行迭代,HashTable不能被直接迭代。

3下列集合中,不属于Collection接口的子接口的是( )

正确答案: D 

答案解析:Properties集合属于Map集合的子类。

4public class Example {
 public static void main(String[] args) {
  ArrayList list = new ArrayList();  // 创建ArrayList集合
  list.add("Tom");     // 向该集合中添加字符串
  list.add("Jerry");
  Iterator it = list.iterator();  //获取迭代器
  it.next();
  it.next();
System.out.println(it.next());
 }
}
运行以上程序,输出结果是(    )

正确答案: D 

5下列关于ArrayList的描述中,错误的是()

正确答案: D

答案解析:ArrayList集合中的元素索引从0开始。

7java.util.*;Student {    String ;    String ;    Student(String name, String age) {        .= name;        .= age;    }    String toString() {        + + ;    }}Example{    main(String[] args) {        Set set = HashSet();        set.add(Student(, ));        set.add(Student(, ));        set.add(Student(, ));        System..println(set.size());    }}

下列选项中,程序的运行结果是(    )

正确答案: B 

答案解析:HashSet存储的元素是不可重复的,添加元素时,需要先后调用hashCode()方法和equals()方法比较元素是否相同,但是如果没有重写,程序就会根据Object类中的hashCode()和equals()方式比较,而根据它的比较方式,两个Tom:10是不相等的。所以结果HashSet中会有三个元素。

8下列关于LinkedList类的方法,不是从List接口中继承而来的是(   )

正确答案: B 

答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。

9下列关于List接口的描述中,错误的是()

正确答案: D 

答案解析:List集合中所有的元素是以线性方式进行存储的。

10下列集合中,不属于Collection接口的子类的是(   )

正确答案: D 

答案解析:Properties集合属于Map集合的子类。

11下列List接口的方法,不是从Collection接口中继承而来的是()。

正确答案: C 

答案解析:get()方法返回列表中指定位置的元素,不是继承自Collection接口。

12阅读下面的程序
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 

答案解析:当使用foreach循环遍历集合和数组时,只能访问集合中的元素,不能对其中的元素进行修改。但是像本题程序中那样尝试进行修改,并不会发生异常,只是对元素的修改不成功,集合或数组中的元素仍然是从前的值。

13下列关于LinkedList的描述中,错误的是(   )

正确答案: C 

答案解析:由于LinkedList是双向循环链表结构,他的增删操作效率高但是查询操作没有ArrayList高。

14以下关于foreach的说法中,哪一个是错误的()

正确答案: A 

答案解析:使用foreach遍历集合或数组时,不能对其值进行修改。

15下列关于ArrayList的描述中,错误的是()。

正确答案: D 

答案解析:ArrayList集合中的元素索引从0开始

16阅读下段代码
import java.util.Enumeration;
import java.util.Properties;
public class Demo {
 public static void main(String[] args) {
  Properties p = new Properties();
  p.setProperty("userame", "tom");
  Enumeration names = p.propertyNames();
  while (names.hasMoreElements()) {
   String key = (String) names.nextElement();
   String value = p.getProperty(key);
   System.out.println(key + " = " + value);
  }
 }
}
下列选项中,哪一个是程序执行后的结果(    )

正确答案: B 

答案解析:使用setProperty()方法向Properties添加一对值,前一个参数为key,后一个参数为value。

17阅读下面代码:

import java.util.ArrayList;

public class Demo {

 public static void main(String[] args) {

  ArrayList list = new ArrayList();

  list.add("aaa");

  list.add("bbb");

  list.add("ccc");

  for (Object obj : list) {

   if (obj.equals("bbb")) {

    list.remove(obj);

   }

  }

  System.out.println(list);

 }

}

下列选项中,哪一个是程序执行后的结果()

正确答案: A 

答案解析:在对list集合进行遍历时,判断如果对象是”bbb”则移除这个对象所以集合中只剩下[aaa,ccc]。

18下列有关HashSet集合的描述中,错误的是(    
正确答案: C 

答案解析:当调用HashSet集合的add()方法存入元素时,首先调用当前存入对象的hashCode()方法获得对象的哈希值,然后根据对象的哈希值计算出一个存储位置。如果该位置上没有元素,则直接将元素存入,如果该位置上有元素存在,才会调用equals()方法让当前存入的元素依次和该位置上的元素进行比较。

20下列方法中可以用于往HashSet集合中添加元素的是(    )

正确答案: A

答案解析:用于往集合中添加元素的方法是add(E e)。
contains(Object o)方法用于判断set集合中是否包含指定的元素, 
clear()方法移除此set集合中的所有元素,

21下面关于List集合的描述中,哪一个是错误的()

正确答案: D 

答案解析:List集合中所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。

22下列数据结构中,哪一个是ArrayList类的底层实现(   )

正确答案: A 
24下列选项中,哪一个类是Properties类的直接父类( )
正确答案: C 

答案解析:Hashtable类有一个子类Properties在实际应用中非常重要,Properties主要用来存储字符串类型的键和值

25下列关于集合的描述中,哪一个是错误的( )

正确答案: D 

答案解析:集合可以存储多种数据类型的数据,包括引用数据类型

26下列方法中,不能用于删除Collection集合中元素的是()。

正确答案: B 

答案解析:isEmpty()方法是用来判断集合是否为空的,不能删除集合中的元素

28阅读下面的程序:

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 

答案解析:当使用foreach循环遍历集合和数组时,只能访问集合中的元素,不能对其中的元素进行修改。但是像本题程序中那样尝试进行修改,并不会发生异常,只是对元素的修改不成功,集合或数组中的元素仍然是从前的值。

29TreeSet ts = new TreeSet();向ts中存入对象时,该对象所属的类必须实现哪个接口()
正确答案: B 
30阅读下面代码

import java.util.ArrayList;
public class Demo {
 public static void main(String[] args) {
  ArrayList list = new ArrayList();
  list.add("aaa");
  list.add("bbb");
  list.add("ccc");
  for (Object obj : list) {
   if (obj.equals("bbb")) {
    list.remove(obj);
   }
  }
  System.out.println(list);
 }
}
下列选项中,哪一个是程序执行后的结果(   )

正确答案: A 

答案解析:在对list集合进行遍历时,判断如果对象是”bbb”则移除这个对象所以集合中只剩下[aaa,ccc]。

31下列关于集合的描述中,哪一个是错误的(  )

正确答案: D 

答案解析:集合可以存储多种数据类型的数据,包括引用数据类型。

32阅读下面的程序
import java.util.*;
class HashSetDemo{
    public static void main(String[] args){
          HashSet hs = new HashSet();
          hs.add("abc");
          hs.add("abc");
          System.out.println(hs);
}
}
下列选项中,哪一个是程序的运行结果(    )

正确答案: A 

答案解析:Set集合中存储的是不重复元素。

33Java语言中,集合类都位于哪个包中(  )

正确答案: A 

答案解析:集合类都位于java.util包中。

34下面关于java.util.HashMap类中的方法描述错误的是(    )

正确答案: D 

答案解析:values()表示返回此映射所包含的值的Collection视图,而不是键的Collection视图。

35Java语言中,集合类都位于哪个包中( )

正确答案: A 

答案解析:集合类都位于java.util包中

36下列选项中,不属于HashMap类的方法的是()

正确答案: C 

答案解析:comparator()方法是TreeMap类中的方法。

37下列集合类中,能和IO流结合使用的是()

正确答案: C 

答案解析:Properties集合类是唯一一个可以和IO流结合使用的集合类。

38下列方法中,可以往HashSet集合中添加元素的是( )

正确答案: A

答案解析:用于往集合中添加元素的方法是add(E e)。

39下面关于List集合的描述中,哪一个是错误的(  )

正确答案: D 

答案解析:List集合中所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。

40下列关于foreach循环的描述,错误的是(    )

正确答案: B 

答案解析:数组或者实现Iterable接口的对象才能使用foreach循环,Map集合不符合要求,显然不能直接使用foreach循环。

41下列选项中,不属于HashMap类的方法的是()

正确答案: C 

答案解析:comparator()方法是TreeMap类中的方法

二.多选题(共14题,12.6分)

1下列关于HashMap集合的描述中,正确的是( )
正确答案: ABCD 

答案解析:HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,但必须保证不出现重复的键。如果存储了相同的键,后存储的值则会覆盖原有的值,简而言之就是,键相同,值覆盖。

2下列选项中,哪些特点是属于LinkedList集合的()

正确答案: BC 

答案解析:LinkedList集合中允许出现重复的元素,它的底层采用链表结构所以增删操作具有很高的效率。

3下列选项中,哪些特点是属于LinkedList集合的(    )

正确答案: BC 

答案解析:LinkedList集合中允许出现重复的元素,它的底层采用链表结构所以增删操作具有很高的效率。

4下面关于java.util.HashMap描述中,哪些是正确的()

正确答案: ABCD 

5TreeMap中所有的键是按照某种顺序排列,确定键的排列顺序的依据是以下哪几项()

正确答案: AC 

6下列选项中,哪些方法是LinkedList类独有的( )

正确答案: ABC
7下列方法中,哪些方法属于Collection接口()
正确答案: ABC

答案解析:addLast()方法是LinkedList集合的方法

10下面关于java.util.HashMap描述中,哪些是正确的(    )
正确答案: ABCD 

答案解析:此类是基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现不是同步的。

11下列选项中,哪些是Properties类的方法( )

正确答案: AB 

答案解析:Properties类中,针对字符串的存取提供了两个专用的方法setProperty()和getProperty()。 Properties类中没有定义 iterator()和 add()方法

12下列ArrayList类的方法中,从List接口中继承而来的是()

正确答案: ACD
13下列选项中,哪些是Properties类的方法(  )
正确答案: AB 

答案解析:Properties类中,针对字符串的存取提供了两个专用的方法setProperty()和getProperty()。 Properties类中没有定义 iterator()和 add()方法。

14下列选项中,属于java.util.Iterator类中的方法有()

正确答案: ABC 

三.填空题(共22题,19.8分)

1java.util.HashMap类中用于返回键所映射值的方法是【】。

正确答案:

第一空: 

get(Object key)

2java.util.HashMap类中用于返回键所映射值的方法是【】。

正确答案:

第一空: 
get(Object key)

3泛型是指定一个表示类型的变量,即【】。

正确答案:

第一空: 
参数化类型

4Iterator主要用于迭代访问【】中的元素,因此Iterator对象也被称为【】。

正确答案:

第一空: 
Collection
第二空: 
迭代器

5向【】集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法来确保该位置中没有重复元素。

正确答案:

第一空: 
HashSet

6设定通配符的上限的语法为【】,设置通配符下限的语法为【】。

正确答案:

第一空: 
List<
第二空: 
? extends Number>
第三空: 
;<
第四空: 
? super Type>

7Collection接口中的子接口有【】、【】、【】和【】4种。

正确答案:

第一空: 
List
第二空: 
Set
第三空: 
Queue
第四空: 
SortedSet

8如果要对TreeSet集合中的对象进行排序,必须实现了【】接口。

正确答案:

第一空: 
Comparable

9LinkedList的底层是由【】结构实现的。

正确答案:

第一空: 

链表

答案解析:LinkedList集合内部维护了一个双向循环链表,链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。

10ArrayList内部封装了一个长度可变的【】。

正确答案:

第一空: 

数组

答案解析:在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

11Set接口提供了可以对HashSet集合中元素进行排序的是【】类。

正确答案:

第一空: 
TreeSet

12Set接口主要有两个实现类,分别是【】和【】。

正确答案:

第一空: 
HashSet
第二空: 
TreeSet

13向【】集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法来确保该位置中没有重复元素。

正确答案:

第一空: 

HashSet

答案解析:向HashSet集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法来确保该位置中没有重复元素。

14Hashtable类有一个子类【】,主要用来存储字符串类型的键和值。

正确答案:

第一空: 
Properties

15Set接口主要有两个实现类,分别是HashSet和【】。

正确答案:

第一空: 

TreeSet

16ArrayList内部封装了一个长度可变的【】。

正确答案:

第一空: 
数组

17List接口继承自【】接口,特点是【】。

正确答案:

第一空: 
Collection
第二空: 
元素有序

18Set接口和List接口一样,同样继承自【】接口。

正确答案:

第一空: 

Collection

19Map接口是一种【】集合,它的每个元素都包含一个键对象【】和值对象【】。

正确答案:

第一空: 
双列
第二空: 
Key
第三空: 
Value

20LinkedList的底层是由【】结构实现的。

正确答案:

第一空: 
链表

答案解析:LinkedList集合内部维护了一个双向循环链表,链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。

21键和值对象之间存在一种对应关系,称为【】。

正确答案:

第一空: 

映射

22请阅读下段代码

public static void main(String[] args) {
  Map hashMap = new HashMap();
  hashMap.put("传智", "播客");
  hashMap.put("务实", "创新");
  for(Map.Entry entry:【】){
   String key = entry.getKey();
   String value = entry.getValue();
   System.out.println("Key:"+key+"  Value: "+value);
  }
}
请补全下划线处代码,使main()方法能够正常运行。

正确答案:

第一空: 

hashMap.entrySet()

答案解析:HashMap类中的entrySet()方法用于返回此映射中所包含的映射关系的Set视图。

四.判断题(共32题,30.7分)

1put(Object key, Object value)和get(Object key)方法分别用于向Map中存入元素和取出元素。
正确答案:

2HashSet是Set接口的一个实现类,它所存储的元素是可重复的,并且元素都是无序的。

正确答案: ×

答案解析:HashSet所存储的元素是不可重复的。

3泛型方法的定义与其所在的类是否是泛型类是没有任何关系的。

正确答案:

4List集合中不允许出现重复的元素。

正确答案: ×

5使用HashMap集合迭代出元素的顺序和元素存入的顺序是一致的。

正确答案: ×

答案解析:HashMap集合迭代出来元素的顺序和存入的顺序是不一致的。如果想要存入顺序和迭代的顺序一致可以使用使用Java中提供的LinkedHashMap类,它是HashMap的子类,和LinkedList一样也使用双向链表来维护内部元素的关系,使Map元素迭代的顺序与存入的顺序一致。

6Properties类表示一个持久的属性集。

正确答案:

7如果使用通配符“?”接收泛型对象,则通配符“?”修饰的对象只能接收,不能修改,也就是不能设置。

正确答案:

8TreeSet是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序。

我的答案:  得分: 0.9分正确答案:

9HashSet是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。

正确答案:

10可以通过Scanner类的nextInt()方法来接受控制台的信息。

我的答案:  得分: 0.9分正确答案:

11java.util.HashMap可以存储null键和null值。

正确答案:

答案解析:java.util.HashMap可以存储null键和null值。

12java.util.HashMap可以存储null键和null值。

正确答案:

13List集合中不允许出现重复的元素。

正确答案: ×

14Set接口中元素是无序的。

正确答案:

15Iterator接口是Java集合框架中的成员。

正确答案:

答案解析:Iterator是对collection进行迭代的迭代器,属于集合框架的成员。

16由于LinkedList集合内部维护了一个双向循环链表,所以它的增删比较快,查询比较慢。

正确答案:

答案解析:LinkedList集合对于元素的增删操作具有很高的效率。

17Properties是Hashtable的子类,它主要用于存储字符串类型的键与值。

正确答案:

答案解析:Hashtable类有一个子类Properties在实际应用中非常重要,Properties主要用来存储字符串类型的键和值。

18集合只能存储对象,不能存储基本类型数据。

正确答案: ×

答案解析:集合类可以存储任意类型的对象,包括基本数据类型的数据,并且长度可变。

19java.util.Iterator接口中的hashNext()方法是用来判断集合中是否存在下一个元素的。

正确答案:

答案解析:hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。

20Java中的foreach循环特性是从JDK5.0版本开始才提供的。

正确答案:

21集合是长度可变的数组。

正确答案: ×

答案解析:数组只能存储同一数据类型的数据,集合可以存储多种数据类型的数据。

22Properties是Hashtable的子类,它主要用于存储字符串类型的键与值。

正确答案:

答案解析:Hashtable类有一个子类Properties在实际应用中非常重要,Properties主要用来存储字符串类型的键和值。

23Set接口主要有两个实现类,分别是HashSet和TreeSet。

正确答案:

24合理使用泛型可以避免在程序中进行强制类型转换。

正确答案:

答案解析:合理使用泛型可以避免在程序中进行强制类型转换。

25java.util.Iterator接口中的hashNext()方法是用来判断集合中是否存在下一个元素的。

正确答案:

答案解析:hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。

26Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value。

正确答案:

27集合是长度可变的数组。

正确答案: ×

答案解析:数组只能存储同一数据类型的数据,集合可以存储多种数据类型的数据。

28LinkedList集合内部维护了一个单向循环链表

正确答案: ×

答案解析:LinkedList集合内部维护了一个双向循环链表。

29集合只能存储对象,不能存储基本类型数据。

正确答案: ×

答案解析:集合类可以存储任意类型的对象,包括基本数据类型的数据,并且长度可变。

30Iterator接口是Java集合框架中的成员。

正确答案:

31Set接口中的元素是无序,并且都会以某种规则保证存入的元素不出现重复。

正确答案:

32ArrayList类是线程不安全的。

正确答案:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还没有名字哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值