首页 > 代码库 > 总结2017.3.13考试

总结2017.3.13考试

技术分享

1.本题考查List接口与实现类的关系。Java的List接口有3个实现类,分别是ArrayList、LinkedList、Vector,它们用于存放多个元素,维护元素的次序,而且允许元素重复。本题应选择D。

4.本题考查HashMap集合类的特性。Java的HashMap 类是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。因为它属于Map接口的类,所以实现了将唯一键映射到特定的值上。同时,它的key、value都可以为null。所以,HashMap对象中最多只有1个key值可以为null。本题应选择A。

5.ArrayList,是可以改变大小的,我们称之为容量capacity在ArrayList存储成员达到增大的阀值时,会自动增加大小,其不指定时,默认大小为10。ArrayList不仅可以存储null值,同时也可以存储重复的值。所以正确答案A,C

7.本题考查的是集合框架中Set类型的特点,Set类型的集合是无序的,元素是唯一的,应选择D。

9.本题考查的是Collection类的常用方法,其中size()方法为返回Collection中的元素数。containsAll(Collection c)方法为判断是否包含指定 collection 中的所有元素。Remove(Object obj)方法为移除集合中某个元素。以上三个方法都是在Collection接口中定义的。compareTO(Object obj)方法是在Comparable接口中定义的。应选择C。

10.本题考查HashMap集合类的特性。Java的HashMap 类是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。因为它属于Map接口的类,所以实现了将唯一键映射到特定的值上。同时,它的key、value都可以为null。所以,HashMap对象中最多只有1个key值可以为null。HashMap的常用方法中,put()方法是在映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则旧值被替换。本题中先后出现2次的代码hm.put(null, null);,其执行结果是hm保存的数据中只有一个key为null,value是null的对象。最后执行System.out.println(hm);代码,调用重写的toString()方法输出hm中的2组数据。重写的toString()方法是返回此映射的字符串表示形式。该字符串表示形式由键-值映射关系列表组成,按照该映射 entrySet 视图的迭代器返回的顺序排列,并用括号 ("{}") 括起来。相邻的映射关系是用字符 ", "(逗号加空格)分隔的。每个键-值映射关系按以下方式呈现:键,后面是一个等号 ("="),再后面是关联的值。键和值都通过 String.valueOf(Object) 转换为字符串。本题应选择B。

12.该题目是用于考察对于集合的理解,以及集合中方法的灵活运用。 d项中HashTable通过Remove()来删除元素。

14.本题考查Collections类和泛型的常用方法。java.util.Collections类包含很多有用的方法,可以使程序员的工作变得更加容易。使用sort()方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的。本题的Collections.sort(nums);代码是对nums的3个对象进行排序操作。在随后的for循环里按nums对象的排序后顺序依次输出的结果是字符串“ABC”。所以,本题应选择B。

15.本题考查HashMap类的常用方法。Java的HashMap是Java Collection Framework 的重要成员,是 Map 接口的常用实现类。对HashMap 而言,系统将 key-value 当成一个整体进行处理,根据 Hash 算法来计算 key-value 的存储位置,这样可以保证能快速存、取 Map 的 key-value 对。HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置。 当需要向HaspMap中添加对象时,程序执行该类的put()方法,系统将调用key值的 hashCode() 方法得到其 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置。 而要获取HaspMap中某个对象时,程序调用get()方法通过 key 取出对应 value 时,系统只要先计算出该 key 的 hashCode() 返回值,在根据该 hashCode 返回值找出该 key 在 table 数组中的索引,然后取出该索引处的 Entry,最后返回该 key 对应的 value 即可。本题要从hMap中查找得到value是“Oracle”的字符串,要通过与之对应的key值"3"才能得到。注意:put方法添加对象时key的值是字符串"1"、"2"、"3"、"4",选项C的代码hMap.get(3)中参数是整数类型,而不是字符串"3",所以,本题应选择A。

18.List<T>类和ArrayList中的方法、属性命名基本是一致的,使用场景也一致; List<T>是一种泛型集合,T可以对应任意.NET类型。

22.考查peek()方法和remove()方法的作用,peek()方法是返回但不删除第一个元素,remove()方法是 返回并且删除第一个元素,所以调用这两个方法后 ,列表中的值是“橙黄绿”答案C

23.Hashtable 根据键(Key)可以查找到相应的值 (Value),Key 3 对应的 Value是 甲 。因此答案a正确

28.HashMap中key不可以重复value可以重复

29.题干的代码中定义了一个泛型集合对象dic,其中key 为int 类型,因此访问dic对象的元素值,必须是dic[int类型key]这种形式;另外要保证key 必须存在,否则出现运行时错误。 该题中,dic对象只有唯一的元素,且key 为1,dic.Count的值正好是1。

30.此题目考察的是C#中List<T>和ArrayList集合的知识。ArrayList的Add方法是将Object类型的数据添加到集合的末尾处的,所以ArrayList中可以存储任何类型的数据,因为ArrayList中存储的是Object类型的数据,Object是引用类型,所以向ArrayList中添加值类型的元素时会执行装箱处理。List(T) 类是 ArrayList 类的泛型等效类,通过泛型T来指定要存储的数据类型。可使用一个整数索引访问List<T>和ArrayList中的元素。 因此c是正确的选项

31.本题考查LinkedList集合类的常用方法。Java集合框架中,LinkedList类实现所有可选的列表操作,并且允许所有元素(包括 null)。本题调用执行了其中的几个常用方法:offer()是将指定元素添加到此列表的末尾(最后一个元素);push()方法是将元素推入此列表所表示的堆栈,即将该元素插入此列表的开头;offerFirst()方法是在此列表的开头插入指定的元素;get()方法是返回此列表中指定位置处的元素;peekFirst()方法是获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。本题for代码先输出books对象中的3个数据,再执行System.out.println(books.peekFirst());再次输出books对象的第1个数据。因此,本题应选择D。

33.本题考查ArrayList的用法,Arraylist使用索引访问单个元素

34.此题目考察的是.Net中的集合。Remove()是通过对象名来进行删除数据,RemoveAt()是通过下标索引进行删除数据,因此最后输出结果是1。选项B是正确的

36.C选项,恰好相反,Dictionary<K,V>无须拆箱和装箱。

38.该题考查集合体系中各接口存储数据的特点 Set接口存储唯一、无序的对象 Map接口中的value不要求有序,允许重复 正确答案是AC。

39.本题考查迭代器Iterator的掌握程度。Java语言中Iterator主要用来取集合容器里面的值。在对集合进行迭代的时候删除其中的元素最好使用迭代器Iterator的remove()方法。本题应选择D。

40.Dictionary<K,V>和Hashtable的遍历方法相同,Dictionary无须拆装箱,但是Hashtable需要拆装箱,而他们都是通过Key取值,添加元素的方法也相同,所以选AB

41.该题目考察集合的操作,创建了一个ArrayList对象list,通过其add()方法从集合末尾依次增加三个元素,调用其remove()方法移除下标为1的元素(C#),此时集合中剩余两个元素。使用迭代器Iterator迭代时,使用泛型约束取值为String,此时循环中不需要再次使用类型强转,可以直接拿到这两个集合元素,正确答案为B

44.该题目考察的是对List<T>泛型集合API的掌握,注意,Add()方法参数的类型应该是泛型实例化的类型,在本题中为string类型。

45.正确答案为A。遍历ArrayList时,可以通过Iterator迭代器,itor.hasNext()表示还有没有下一个集合元素,itor.next()取集合的下一个元素。因此,正确答案是A。

46.

此题目考察的是.Net 集合。

1)Dictionary<TKey, TValue>不存在RemoveAt()方法;

2)Dictionary<String, Student>中,String对应Key,Student对应Value,

所以遍历学生Student对象应该是访问Values。

49.在ArrayList删除元素时,元素的索引会随之发生变化,第一个元素删除后,不再有下标为1的元素,只剩下标为0的元素,所以A和C选项会出现异常,而选项B和D在循环中一直使用的下标为0,可以正常删除集合中所有的元素。

50.该题考察的是Dictionary集合相关API的用法,首先是定义一个Dictionary集合对象,然后添加几个元素,删除一个元素,最后输出元素个数。 第1行代码定义Dictionary集合对象,定义的类型必须给泛型类型指定实际类型,和右边一致即可,为Dictionary<string, Book>,所以错误; 第2行和3行代码使用Add()添加了两个元素,其第1个参数为key,第2个参数为value。 第4行代码Remove()的参数类型应该和Key的类型一致,即string类型,传递int 类型的值0,会出现编译错误; Dictionary集合不存在RemoveAt()方法。

 

总结2017.3.13考试