第六章 集合类 题库

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

A、 集合按照存储结构可以分为单列集合Collection和双列集合Map。

B、 List集合的特点是元素有序、元素可重复。

C、 Set集合的特点是元素无序并且不可重复。

D、 集合存储的对象必须是基本数据类型。

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

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

A、 java.util

B、 java.lang

C、 java.array

D、 java.collections

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

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

A、 List

B、 Set

C、 Queue

D、 Properties

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

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

A、 clear()

B、 isEmpty()

C、 remove()

D、 removeAll()

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

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

A、 List集合是有索引的

B、 List集合可以存储重复的元素

C、 List集合存和取的顺序一致

D、 List集合的元素是无序的

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

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

A、 size()

B、 add()

C、 get()

D、 remove()

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

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

A、 ArrayList集合可以看作一个长度可变的数组。

B、 ArrayList集合不适合做大量的增删操作。

C、 ArrayList集合查找元素非常便捷。

D、 ArrayList集合中的元素索引从1开始。

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

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

A、 java.util.HashSet

B、 java.util.ArrayList

C、 java.util.TreeSet

D、 java.util.HashTable

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

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

A、 使用foreach遍历集合时,可以对元素进行修改。

B、 foreach可以对数组进行遍历。

C、 foreach可以对集合进行遍历。

D、 foreach循环是一种更加简洁的for循环,也称增强for循环。

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

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

A、 add(E e)

B、 contains(Object o)

C、 clear()

D、 iterator()

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

11、TreeSet ts = new TreeSet();向ts中存入对象时,该对象所属的类必须实现哪个接口()

A、 Comparator

B、 Comparable

C、 Serializable

D、 Runnable

答案: B

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

A、 get(Object key)

B、 keySet()

C、 comparator()

D、 entrySet()

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

13、下列选项中,哪一个类是Properties类的直接父类( )

A、 Map

B、 HashMap

C、 Hashtable

D、 TreeMap

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

14、下列关于泛型的说法中,错误的是()

A、 在对泛型类型进行参数化时,类型参数的实例必须是引用类型,不能使基本类型

B、 ArrayList中的E称为类型变量或类型参数

C、 泛型中的通配符?用于表示任意类型

D、 泛型是JDK6.0的新特性

答案: D

15、下列选项中,哪个可以正确地定义一个泛型()

A、 ArrayList list = new ArrayList();

B、 ArrayList list = new ArrayList ();

C、 ArrayList list = new ArrayList();

D、 ArrayList list = new ArrayList ();

答案: A

16、关于Lambda表达式的语法格式,下列说法错误的是()

A、 ()-> System.out.println("Hello Lambda!");描述的无参数无返回值

B、 (x) -> System.out.println(x);描述的是有一个参数并且有返回值

C、 Comparator com = (x, y) -> {System.out.println("函数式接口");return Integer.compare(x, y); };描述的是有两个以上的参数,有返回值,并且 Lambda 体中有多条语句

D、 Comparator com = (x, y) -> Integer.compare(x, y);描述的是若Lambda 体中只有一条语句,return 和大括号都可以省略不写

答案: B

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、 [aaa,ccc]

B、

[aaa,bbb,ccc]

C、 []

D、

以上都不对

答案: A
解析:

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

18、阅读下面的程序:

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,Donald

B、

Tuffy,Jerry,Donald

C、 Tuffy, Tuffy, Tuffy

D、 发生异常,输出异常信息

答案: A
解析:

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

19、下列方法中,哪些方法属于Collection接口()

A、 add()

B、 clear()

C、 remove()

D、 addLast()

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

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

A、 toArray()

B、 clone()

C、 set()

D、 add()

答案: ACD

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

A、 查询快

B、 增删快

C、 元素可重复

D、 元素自然排序

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

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

A、 void addFirst(Object o)

B、 Object getFirst()

C、 Object removeFirst()

D、 boolean Remove(Object obj)

答案: ABC

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

A、 hasNext()

B、 next()

C、 remove()

D、 add(Object obj)

答案: ABC

24、以下关于foreach说法中,哪些是正确的()

A、 foreach是一种更加简洁的for循环,也称增强for循环

B、 next()

C、 remove()

D、 add(Object obj)

答案: ABCD

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

A、 是线程不安全的

B、 允许存储null值和null键

C、 此类不保证映射的顺序

D、 此类是基于哈希表的Map接口的实现

答案: ABCD

26、下列关于HashMap集合的描述中,正确的是( )

A、 HashMap集合是Map接口的一个实现类

B、 HashMap集合存储的对象都是键值映射关系

C、 HashMap集合存储的对象,必须保证不出现重复的键

D、 HashMap集合中,如果存储的键名称相同,那么后存储的值则会覆盖原有的值,简而言之就是,键相同,值覆盖

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

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

A、 自然顺序(Comparable)

B、 hashCode()与equals()

C、 比较器(Comparator)

D、 按照字典顺序排序

答案: AC

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

A、 setProperty()

B、 getProperty()

C、 iterator()

D、 add()

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

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

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

30、集合是长度可变的数组。

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

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

答案: 错误

32、ArrayList类是线程不安全的。

答案: 正确

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

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

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

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

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

答案: 正确

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

答案: 正确

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

答案: 正确

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

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

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

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

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

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

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

答案: 正确

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

答案: 正确

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

答案: List;Set;Queue;SortedSet;

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

答案: Collection;元素有序;

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

答案: 数组;

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

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

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

答案: Collection;迭代器;

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

答案: HashSet;TreeSet;

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

答案: HashSet;

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

答案: TreeSet;

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

答案: Comparable;

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

答案: 双列;Key;Value;

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

答案: get(Object key);

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

答案: Properties;

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

答案: 参数化类型;

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

答案: List<;? extends Number>;;<;? super Type>;

java.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());    }}

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

A、 2

B、 3

C、 1

D、 不固定个数

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

58、
put(Object key, Object value)和get(Object key)方法分别用于向Map中存入元素和取出元素。

答案: 正确

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

答案: 正确

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

答案: 正确

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

答案:

TreeSet

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

答案: 正确

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

答案: 正确

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

答案: 正确

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

答案:

映射

66、
Set接口中元素是无序的。

答案: 正确

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

答案:

Collection;collection

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

A、 HashMap

B、 TreeMap

C、 Properties

D、 SimpleBindings

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

69、
请阅读下段代码
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视图。

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

A、 get(Objectkey)

B、 keySet()

C、 comparator()

D、 entrySet()

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

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

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

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

A、 setProperty()

B、 getProperty()

C、 iterator()

D、 add()

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

73、
以下关于foreach说法中,哪些是正确的(  )

A、 foreach是一种更加简洁的for循环,也称增强for循环

B、 foreach可以对List,Set数组进行遍历

C、 foreach的出现,简化了书写

D、 foreach只适合对容器进行遍历操作,不能对元素进行修改

答案: ABCD

74、
下列关于泛型的说法中,错误的是(     )

A、 在对泛型类型进行参数化时,类型参数的实例必须是引用类型,不能使基本类型

B、 ArrayList中的E称为类型变量或类型参数

C、 泛型中的通配符?用于表示任意类型

D、 泛型是JDK6.0的新特性

答案: D
解析:泛型是JDK5.0的新特性。

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

A、 foreach循环只能用于遍历数组或集合中的元素

B、 foreach循环可以直接用于遍历Map集合中的元素

C、 相当于传统for循环来说,foreach循环简化了书写

D、 foreach循环遍历过程中不能对集合或数组元素进行修改

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

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

A、 是线程不安全的

B、 允许存储null值和null键

C、 此类不保证映射的顺序

D、 此类是基于哈希表的Map接口的实现

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

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

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

78、
请按照下列提示编写一个泛型接口以及其实现类。 
提示:
1、 创建一个泛型接口Generic,并创建一个抽象方法get(T t);
2、 创建一个实现类GenericImpl,空实现get(T t)方法。

答案:

interface Generic{
    public abstract void get(T t){}
}
class Generic implements Generic{
     public void get(T t){}
}


解析:泛型接口,实现类实现接口不实现泛型。

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

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

80、
阅读下面的程序
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,Donald

B、 Tuffy,Jerry,Donald

C、 Tuffy,Tuffy,Tuffy

D、 发生异常,输出异常信息

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

81、
已知如下配置项
Username=tom
Password=123
Role=admin
请使用Properties类来存储配置项,并将存储后的结果遍历出来,以“key = value”的形式打印到控制台上。

答案:

import java.util.Enumeration;
import java.util.Properties;
public class Demo {
 public static void main(String[] args) {
  Properties p = new Properties();
  p.setProperty("Username""," "tom");
  p.setProperty("Password""," "123");
  p.setProperty("Role""," "admin");
  Enumeration names = p.propertyNames();
  while (names.hasMoreElements()) {
   String key = (String) names.nextElement();
   String value = p.getProperty(key);
   System.out.println(key + " = " + value);
  }
 }
}


解析:使用setProperties()存储,使用propertyNames()得到所有name项,再对其进行读取,通过getProperty方法根据key获取value。

82、
阅读下段代码
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);
  }
 }
}
下列选项中,哪一个是程序执行后的结果(    )

A、 key=tom

B、 username=tom

C、 usernametom

D、 编译失败

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

83、
给出如下一个map,请使用迭代器迭代出里面每一个key和value的值。
MaphashMap=new HashMap();
hashMap.put("key1", "value1");
hashMap.put("key2", "value2");
hashMap.put("key3", "value3");

答案:

Set> set = hashMap.entrySet();
   Iterator> iterator = set.iterator();
   while(iterator.hasNext()){
   Entry entry = iterator.next();
   System.out.println(entry.getKey());
   System.out.println(entry.getValue());
   }


解析:首先通过HashMap中的entrySet()方法获取映射关系的 Set 视图,然后通过iterator迭代器遍历该Set视图中每个映射项(键-值对),最后分别通过getKey()和getValue()方法获取key和value的值。

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

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

85、
public 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());
 }
}
运行以上程序,输出结果是(    )

A、 Tom

B、 null

C、 ""

D、 发生异常,输出异常信息

答案: D

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

A、 containsKey(Objectkey)表示如果此映射包含对于指定的键,则返回true

B、 remove(Objectkey)表示从此映射中移除指定键的映射关系(如果存在)

C、 size()表示返回此映射中的键-值映射关系数

D、 values()表示返回此映射所包含的键的Collection视图

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

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

A、 add(Ee)

B、 contains(Objecto)

C、 clear()

D、 iterator()

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

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

答案:

HashSet


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

89、
阅读下面代码
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、 [aaa,ccc]

B、 [aaa,bbb,ccc]

C、 []

D、 以上都不对

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

90、
阅读下面的程序
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、 [abc]

B、 [abc,abc]

C、 编译失败

D、 运行成功,无输出结果

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

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

答案: 正确

92、
下列选项中,哪一个类是Properties类的直接父类(  )

A、 Map

B、 HashMap

C、 Hashtable

D、 TreeMap

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

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

答案: 正确

94、
下列有关HashSet集合的描述中,错误的是(    

A、 HashSet是Set接口的一个实现类

B、 向HashSet存入对象时,对象一般会重写hashCode()和equals()方法

C、 向HashSet存入对象时,对象的equals()方法一定会被执行

D、 HashSet存储的元素是不可重复的

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

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

答案:

get(Object key)

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

A、 数组结构

B、 链表结构

C、 哈希表结构

D、 红黑树结构

答案: A

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

A、 List集合是有索引的

B、 List集合可以存储重复的元素

C、 List集合存和取的顺序一致

D、 List集合没有索引

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

98、
集合是长度可变的数组。

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

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

A、 ArrayList集合可以看作一个长度可变的数组。

B、 ArrayList集合不适合做大量的增删操作。

C、 ArrayList集合查找元素非常便捷。

D、 ArrayList集合中的元素索引从1开始。

答案: D
解析:

ArrayList集合中的元素索引从0开始。

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

A、 List接口继承自Collection接口,是单列集合。

B、 List集合中允许出现重复的元素。

C、 List集合存储元素是有序的,即元素的存入顺序和取出顺序一致。

D、 List集合中所有的元素是以二叉树方式进行存储的。

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

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

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

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

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

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

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

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

A、 集合按照存储结构可以分为单列集合Collection和双列集合Map。

B、 List集合的特点是元素有序、元素可重复。

C、 Set集合的特点是元素无序并且不可重复。

D、 集合存储的对象必须是基本数据类型。

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

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

A、 LinkedList集合对于元素的增删操作具有很高的效率。

B、 LinkedList集合中每一个元素都使用引用的方式来记住它的前一个元素和后一个元素。

C、 LinkedList集合对于元素的查找操作具有很高的效率。

D、 LinkedList集合中的元素索引从0开始。

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

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

A、 toArray()

B、 pop()

C、 remove()

D、 isEmpty()

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

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

A、 java.util

B、 java.lang

C、 java.array

D、 java.collections

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

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

A、 查询快

B、 增删快

C、 元素可重复

D、 元素自然排序

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

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

答案:

链表


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

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

A、 ArrayList

B、 LinkedList

C、 TreeSet

D、 Properties

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

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

答案:

数组


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

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

答案: 错误

你可能感兴趣的:(Java题库,java,数据结构,开发语言)