黑马集合知识测试(带解析)Word版

上传人:每**** 文档编号:48968810 上传时间:2022-01-17 格式:DOC 页数:11 大小:66KB
返回 下载 相关 举报
黑马集合知识测试(带解析)Word版_第1页
第1页 / 共11页
黑马集合知识测试(带解析)Word版_第2页
第2页 / 共11页
黑马集合知识测试(带解析)Word版_第3页
第3页 / 共11页
点击查看更多>>
资源描述
集合部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。1. 单列集合的顶层接口是( )a) java.util.Mapb) java.util.Collection / 这是单列集合的老大,必须记住c) java.util.List d) java.util.Set 2. ArrayList类的底层数据结构是( )a) 数组结构 /看名字也能猜出来底层的数据结构.b) 链表结构c) 哈希表结构d) 红黑树结构3. LinkedList类的特点是( )a) 查询快b) 增删快 / 由于底层是链表结构,所以增删快, 查询慢. c) 元素不重复d) 元素自然排序4. Vector类的特点是( )a) 线程同步 / 这是早期工具的特性之一,安全性高,后来出现的集合都是求效率.推荐精选b) 线程不同步c) 增删快d) 底层是链表结构5. 关于迭代器说法错误的是( )a) 迭代器是取出集合元素的方式b) 迭代器的hasNext()方法返回值是布尔类型c) List集合有特有迭代器ListIteratord) next()方法将返回集合中的上一个元素 / 返回下一个元素.6. 在我们所学知识中,下面哪几项是接口( )a) java.util.Mapb) java.util.Collectionc) java.util.Listd) java.util.Set7. 实现下列哪个接口,可以启用比较功能( )a) Runnable接口b) Iterator接口c) Serializable接口d) Comparator接口/比较器接口8. 下面代码运行的结果是( )ArrayList<String> al = new ArrayList<String>();al.add(true);al.add(123);al.add(“abc”);System.out.println(al);a) 编译失败 /因为有泛型<String>存在,所以只能存String.b) true,123c) true,123,abc;d) abc;9. 按照课堂要求重写equals和hashCode后,下面关于这两个方法说法正确的是( )a) 两个对象的hashCode值相同,那么他们调用equals()方法返回值一定为trueb) 两个对象的hashCode值相同,那么他们调用equals()方法返回值可以为false/HashCode的值为int类型,如果有超过232个不同对象的话,equals值不同,hashCode()方法返回值肯定有重复的c) hashCode值一般与对象的成员变量有关。d) 只要重写equals方法,就一定要重写hashCode方法推荐精选10. 将Map集合中的键存储到Set集合的方法是( )a) entrySet()b) get()c) keySet() /这个记住吧d) put()11. Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是( )a) ArrayList和LinkedList均实现了List接口b) ArrayList的查询速度比LinkedList快c) 添加和删除元素时,ArrayList的表现更佳d) HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值12. ArrayList和Vector的区别说法正确的是( )a) ArrayList是线程安全的,Vector是线程不安全b) ArrayList是线程不安全的,Vector是线程安全的 /这个理解,详细大家能明白.c) ArrayList底层是数组结构,Vector底层是链表结构d) ArrayList底层是链表结构,Vector底层是数组结构13. ArrayList的初始化内容如下:  ArrayList<String> list = new ArrayList<>();list.add("java");list.add("aaa");list.add("java");list.add("java");list.add("bbb");下面可以删除list中所有的“java”的代码是( )  a) for (int i = list.size()-1; i >= 0; i-) if("java".equals(list.get(i)list.remove(i);  b) for (int i =0; i < list.size(); i+) if("java".equals(list.get(i)list.remove(i);c) list.remove("java");推荐精选d) list.removeAll("java");14. 使用TreeSet的无参构造创建集合对象存储元素时,该元素必须 ( )a) 必须实现Comparable接口 /这是存到TreeSet集合对象必须做的,字符串已经实现了Comparable接口,所以我们存的时候,直接就可以.b) 有main方法c) 有get和set方法d) 必须实现Serializable接口15. 将集合转成数组的方法是( )a) asList() /Arrays.asList(); 记住吧.b) toCharArray()c) toArray()d) copy()16. 下面关于HashMap和Hashtable的区别,说法正确的是( )a) Hashtable线程不安全,效率高/A B选项说反了b) HashMap线程安全,效率低c) HashMap允许null键和值d) Hashtable不允许null键和值17. 对于增强for循环说法错误的是( )a) 增强for循环可以直接遍历Map集合 /可以间接 遍历.b) 增强for循环可以操作数组c) 增强for循环可以操作Collection集合d) 增强for循环是JDK1.5版本后出现的18. 下面的代码用于输出字符数组ch中每个字符出现的次数 public static void main(String args) char ch = 'a', 'c', 'a', 'b', 'c', 'b' ; HashMap map = new HashMap(); for (int i = 0; i < ch.length; i+) /位置 System.out.println(map); 应该填入位置的代码是,不允许使用工具运行程序( ) a)推荐精选if (map.contains(chi) map.put(chi, map.get(chi) + 1); else map.put(chi, 1); b)if (map.contains(chi) map.put(chi, (Integer) map.get(chi) + 1); else map.put(chi, 1); c)if (map.containsKey(chi) map.put(chi, (int) map.get(chi) + 1); else map.put(chi, 1); d)if (map.containsKey(chi) map.put(chi, (Integer) map.get(chi) + 1); else map.put(chi, 1); 19. 对于HashMap集合说法正确的是( )a) 底层是数组结构b) 底层是链表结构c) 可以存储null值和null键 / HashMap的特点,记住.其他map都不行.d) 不可以存储null值和null键20. Collections工具类中的binarySearch()方法描述正确的是( )a) binarySearch()方法只能操作Set集合b) binarySearch()方法只能操作List集合 /二分法查找必须是有序的集合c) binarySearch()方法只能操作Map集合d) binarySearch()可以操作所有的集合21. 下面代码的运行结果是( ) ArrayList al = new ArrayList(); al.add(“a”); al.add(“b”); al.add(“c”); Iterator it = al.iterator();推荐精选 while(it.hasNext()String s = (String)it.next();if(s.equals(“c”)al.add(“c1”);System.out.println(al);a) a,b,cb) c1c) a,b,c,c1d) 抛出ConcurrentModificationException异常 / 如何解决这个问题.看下面代码./ ListIterator it = al.ListIterator(); 要解决并发修改异常,就要用LIst集合特有的迭代器. 这个迭代器可以同时做到上面的操作.22. 关于Map.Entry接口说法错误的是( )a) 具有getkey()方法b) 具有getValue()方法c) 具有keySet()方法 /这个方法是map集合的.d) 具有setValue( )方法23. 题示代码的功能为:循环遍历输出Map当中的每一个元素 Map map=new HashMap(); map.put(“jessica”,100); map.put(“tom”,200); map.put(“den”,300); Set 位置 set = 位置; for ( 位置 per : set) System.out.println(per.getKey() + ":" + per.getValue(); 下列每个选项中分别填入上面三个位置,正确的是a) <Entry> map.keySet() Entry b) <Entry<Integer, String >> map.entrySet() Entryc) <Map.Entry<String, Integer>> map.keySet() Map.Entry d) <Map.Entry<String, Integer>> map.entrySet()推荐精选Map.Entry24. Set集合的特点是( )a) 元素有序b) 元素无序,不存储重复元素 /记住.c) 存储重复元素d) Set集合都是线程安全的25. 关于将int数组使用系统提供的API转成集合后,不可以进行的操作是( )a) 增加集合中的元素 / 数组转成的集合 它的性质 和那种以前的集合不一样了. 大家可以试一下.可以修改元素内容,不能添加元素个数b) 迭代集合c) 修改集合中的元素d) 获取集合中元素的个数26. 下面代码运行的结果是( ) ArrayList<String> al = new ArrayList<>();/JDK1.7 新特性,后面的泛型可以不写al.add("s");al.add("ddd");al.add("true");System.out.println(al);a) 编译失败b) s,ddd,true / 都是字符串,没什么说的.c) trued) 运行报错27. 关于HashMap集合说法正确的是( )a) HashMap集合是双列集合b) HashMap集合不允许存储重复键c) HashMap集合不允许存储重复值d) HashMap集合线程是安全的28. List集合的遍历方式有如下哪几种 ( )a) Iterator迭代器实现 /开发使用这种方法b) 增强for循环实现c)  get()和size()方法结合实现 d) get()和length()方法结合实现29. 下面类或者接口中,不属于集合体系的是( )a) java.util.Collections推荐精选b) java.util.Mapc) java.util.Vectord) java.util.Hashtable30. 下面的类是同步的有( )。 a) java.util.ArrayList b) java.util.Vector c) java.util.HashMap d) java.util.Hashtable31. 下列代码public class Base private void test() String aStr = "_One_"String bStr = aStr;_One_bStr = aStr.trim(); OneSystem.out.println("" + aStr + "," + bStr + "");static public void main(String a) new Base().test();其中“_”表示一个空格,运行的结果是 ( )a) One,_One_ b) _One_,One c) One,One d) _One_,_One_ 32. 以下能以键_值对的方式存储对象的接口是( )a) java.util.Collectionb) java.util.Mapc) java.util.HashMap/这个是类d) java.util.Set33. 在Java中,( )类可用于创建链表数据结构的对象。a) LinkedListb) ArrayListc) Collectiond) HashMap推荐精选34. 下列方法不是Collection通用方法的有( )a) iterator()b) add()c) get();/list特有d) remove()35. 题示代码的功能为:对于一个存放Person对象的ArrayList进行循环遍历。并输出每个Person对象的idCard和userName。 public class Person private Long idCard; pirvate String userName; /以下是getter和setter方法 /省略 List list=new ArrayList(); Person p1=new Person(); p1.setIdCard(new Long(1001); p1.setUserName(“terry”); Person p2=new Person(); p2.setIdCard(new Long(1002); p2.setUserName(“tom”); list.add(p1); list.add(p2); for( 位置 ) System.out.println(person.getIdCard()+”:”+person.getUserName(); 那么位置处的代码为 a) List list:person b) List list:Person c) Person person:List d) Person person:list/这是格式,记住吧36. 下面关于泛型的说法不正确的是( )a) 泛型的具体确定时间可以是在定义方法的时候b) 泛型的具体确定时间可以是在创建对象的时候c) 泛型的具体确定时间可以是在继承父类定义子类的时候d) 泛型就是Object类型注:具体指定时间,比如 List<String> list = new ArrayList<String>();就是在new一个ArrayList的时候确定了泛型的类型推荐精选37. 下面关于Collection 和 Collections的区别错误的是( )a) Collections是集合顶层接口/是Collectionb) Collection是针对Collections集合操作的工具类/看Dc) List、Set、Map都继承自Collection接口/Map不属于Collection体系,是双列集合。但是Collection是单例集合的顶层父接口d) Collections是针对Collection集合操作的工具类38. 父类声明:public class FXfather<T>.现在要定义一个Fxfather的子类son,下面定义错误的是( )a) class Son extends FXfather<String>b) class Son<T,V> extends FXfather<T>c) class Son<String> extends FXfather<String>d) class Son<String> extends FXfather<T>/父类定义了一个泛型,子类也必须具备这个泛型(如果像A一样不写,也是默认继承了)。解决方案:将T改成String,或者将Son的泛型给成<String,T>,或者使用A选项等39. 关于泛型的说法正确的是( )a) 泛型是JDK1.5出现的新特性 / 2004出现 jdk5.0, 从那时开始j2EE 就被称为 javaEE 了.b) 泛型是一种安全机制c) 使用泛型避免了强制类型转换d) 使用泛型必须进行强制类型转换40. 应用程序的main方法中有以下语句(请参看API文档) 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) 编译失败b) bbb c) ccc d) cccbbbaaa/Hashtable有get方法 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!