Java集合知识测试B
4. Java集合知识测试_B卷

集合部分测试题本套题共40道,前30道为单选,后10道为多选。
单选题2分/题,多选题4分/题。
多选题不全对半分,全对满分。
单选题1.LinkedList类的特点是( )A.查询快B.增删快C.元素不重复D.元素自然排序2.关于迭代器说法错误的是( )A.迭代器是取出集合元素的方式B.迭代器的hasNext()方法返回值是布尔类型C.List集合有特有迭代器D.next()方法将返回集合中的上一个元素3.单列集合的顶层接口是( )A.java.util.MapB.java.util.CollectionC.java.util.ListD.java.util.Set4.实现下列哪个接口,可以启用比较功能( )A.Runnable接口B.Iterator接口C.Serializable接口parator接口5.对于增强for循环说法错误的是( )A.增强for循环可以直接遍历Map集合B.增强for循环可以操作数组C.增强for循环可以操作Collection集合D.增强for循环是JDK1.5版本后出现的6.下面代码运行的结果是( )ArrayList<String> al = new ArrayList<String>();al.add(true);al.add(123);al.add(“abc”);System.out.println(al);A.编译失败B.[true,123]C.[true,123,abc];D.[abc];7.将Map集合中的键存储到Set集合的方法是( )A.entrySet()B.get()C.keySet()D.put()8.ArrayList和Vector的区别说法正确的是( )A.ArrayList是线程安全的,Vector是线程不安全B.ArrayList是线程不安全的,Vector是线程安全的C.ArrayList底层是数组结构,Vector底层是链表结构D.ArrayList底层是链表结构,Vector底层是数组结构9.Set集合的特点是( )A.元素有序B.元素无序,不存储重复元素C.存储重复元素D.Set集合都是线程安全的10.A rrayList的初始化内容如下: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");11.V ector类的特点是( )A.线程同步B.线程不同步C.增删快D.底层是链表结构12.使用TreeSet的无参构造创建集合对象存储元素时,该元素必须 ( )A.必须实现Comparable接口B.有main方法C.有get和set方法D.必须实现Serializable接口13.下列方法不是Collection通用方法的有( )a) iterator()b) add()c) get(); //list特有d) remove()14.对于HashMap集合说法正确的是( )A.底层是数组结构B.底层是链表结构C.可以存储null值和null键D.不可以存储null值和null键15.C ollections工具类中的binarySearch()方法描述正确的是( )A.binarySearch()方法只能操作Set集合B.binarySearch()方法只能操作List集合C.binarySearch()方法只能操作Map集合D.binarySearch()可以操作所有的集合16.将集合转成数组的方法是( )A.asList()B.toCharArray()C.toArray()D.copy()17.父类声明: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>{}18.A rrayList类的底层数据结构是( )A.数组结构B.链表结构C.哈希表结构D.红黑树结构19.应用程序的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());则输出的结果是 ( )。
Java程序员集合框架面试题-java集合框架面试题

程序员集合框架面试题集合框架面试题集合框架是最常被问到的面试问题,要理解技术强大特性,就有必要掌握集合框架。
下面就由小编为大家介绍一下程序员集合框架面试题的文章,欢迎阅读。
程序员集合框架面试题篇11、什么是集合集合框架是用来表示和操作集合的统一框架,它包含接口、实现类、以与帮助程序员完成一些编程的算法。
简言之,在上层完成以下几件事:● 编程更加省力,提高城程序速度和代码质量● 非关联的提高互操作性● 节省学习使用新成本● 节省设计新的时间● 鼓励、促进软件重用具体来说,有6个集合接口,最基本的是接口,由三个接口、、继承,另外两个接口是、,这两个接口不继承,表示映射而不是真正的集合。
2、什么是一些集合类提供了内容遍历的功能,通过接口。
这些接口允许遍历对象的集合。
依次操作每个元素对象。
当使用时,在获得的时候包含一个集合快照。
通常在遍历一个的时候不建议修改集合本省。
3、与有什么区别?:只能正向遍历集合,适用于获取移除元素。
:继承,可以双向列表的遍历,同样支持元素的修改。
程序员集合框架面试题篇21、什么是和?是接口,集合框架中一部分,用于存储键值对,是用哈希算法实现的类。
2、与有什么区别?对比两者都是用方式获取数据。
是原始集合类之一(也称作遗留类)。
作为新集合框架的一部分在2的1.2版本中加入。
它们之间有一下区别:● 和大致是等同的,除了非同步和空值(允许值作为和,而不可以)。
● 没法保证映射的顺序一直不变,但是作为的子类,如果想要预知的顺序迭代(默认按照插入顺序),你可以很轻易的置换为,如果使用就没那么容易了。
● 不是同步的,而是同步的。
● 迭代采用快速失败机制,而不是,所以这是设计的考虑点。
3、在上下文中同步是什么意思?同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行的更新操作前需要获取对象锁,其他线程等待锁的释放。
4、什么叫做快速失败特性从高级别层次来说快速失败是一个系统或软件对于其故障做出的响应。
Java基础知识测试(含答案)

Java基础知识测试(含答案)共40道选择题,每题2.5分。
多选题有错则全错,全对才满分.单选题:1.下列哪个声明是错误的?(b)A.inti=10;B.floatf=1.1;C.doubled=34.4;D.byteb=127;2.下面哪个不是java中的关键字?(c)A.publicB.trueC.mainD.cla3.下面哪个语句不会产生编译错误?(c)A.floata=2.0;B.charc=”a”;C.byteb=25;D.booleand=0;4.下面程序哪个语句是正确的cA.bytea=0,b=3;bytec=a+b;B.hort=23;=+12;C.hort=23;+=12;D.floa tf=23+23.23;5.byte类型的大小是aA.-128~127B.-228~128C.-255~256D.-255~2556.下面程序执行的结果是?(b)publicclaTet(){publictaticvoidmain(String[]arg){Sytem.out.println(“”+a+1);}}A.98B.a1C.971D.1977.下面程序执行的结果是?(b)inti=100;while(true){If(i++>100)break;Sytem.out.println(i);}A.100B.101C.102D.1038.下面程序执行的结果是?(c)inta=2;witch(a){cae1:a+=1;break;cae2:a+=2;cae3:a+=3;break;cae4:a+=4;break;default:a=0;}Sytem.out.println(a);A.5B.6C.7D.89.下面程序的运行结果是(d)inta=3,b=1;if(a==b)Sytem.out.println(\A.a=1B.a=3C.编译错误D.正常运行但没有输出10.下面程序的运行后,a,b,c的值正确的是:binta=1,b=2;intc=(a+b>3a++:++b);A.a=2,b=3B.a=1,b=3C.a=1,b=2D.c=211.下面程序的运行结果bpublicclaDemo{publictaticintfun(intc){returnc+=2;}publictaticvoidmain(String[]arg){inttemp=fun(2);Sytem.out.println(temp);}}A.2B.4C.6D.812.下面程序的运行结果,哪个是正确的bintb=1;while(++b<3)Sytem.out.println(\A.程序将会进入死循环导致无输出B.输出一次LOOPC.会输出多次LOOPD.程序中含有编译错误13.下面数组定义错误的是(d)CA.int[]arr={23,45,65,78,89};B.int[]arr=newint[10];C.int[]arr=newint[4]{3,4,5,6};D.int[]arr={a,23,45,6};14.下面程序执行的结果是?(d)int某=1,y=1;if(某++==2&++y==2){某=7;}Sytem.out.println(\,y=\A.某=1y=2B.某=7y=1C.某=7y=2D.某=2y=215.下面不属于基本数据类型的是(b)A.intB.doubleC.longD.int[]16.给出下列代码:booleana=fale;booleanb=true;booleanc=(a&&b)&&(!b);intreult=(c==fale)1:2;执行完后,c与reult 的值是(a).A.fale和1B.true和2C.true和1D.fale和217.阅读下列代码:publicclaTet{publictaticvoidmain(String[]arg){intf=12;inti=3;Sytem.out.pr intln(f/i);}}程序运行结果为(c).A.3B.3.0C.4D.4.018.下面程序执行的结果是?(c)booleanb=true;if(b=fale){Sytem.out.println(\}eleif(b){Sytem.out.println(b);}eleif(!b){Sytem.out.println(\}eleSytem.out.println(\A.aB.tru eC.cD.d19.下面程序执行的结果是?(d)int某=2,y=3;witch(某){default:y++;cae3:y++;cae4:y++;}Syetem.out.println(\A.3B.4C.5D.638.下面哪几段代码不会出现编译错误(ac)A.booleanb=true;booleanb2=true;if(b==b2){Sytem.out.println(“Sotrue”);}B.inti=0;if(i){Sytem.out.println(“Hi”);}C.inti=1;intj=2;if(i==1||j==2)Sytem.out.println(“OK”);D.in ti=1;intj=2;if(i==1&|j==2)Sytem.out.println(“OK”);39.下面关于函数描述正确的是(ad)A.函数是对功能代码块的封装B.函数没有返回值的时候什么都不用写C.没有返回值的函数,不能有return语句D.函数是可以没有形参的40.下面关于循环描述正确的是(ad)A.while循环先判断循环条件,后执行循环操作B.while至少会执行一次C.do-while先进行循环条件判断,后执行循环操作D.do-while循环至少执行一次,后进行循环判断。
java集合相关的面试题目

java集合相关的面试题目Java集合是面试中经常涉及的一个重要话题。
下面我将从多个角度回答与Java集合相关的面试题目。
1. 请介绍一下Java集合框架。
Java集合框架是Java提供的一组用于存储和操作数据的类和接口的集合。
它包括了List、Set、Queue和Map等主要接口,以及它们的实现类。
集合框架提供了高效的数据存储和操作方式,可以方便地进行数据的增删改查等操作。
2. 请解释一下List和Set的区别。
List是有序的集合,可以包含重复的元素,可以通过索引访问元素。
常见的实现类有ArrayList和LinkedList。
Set是无序的集合,不允许包含重复的元素,不能通过索引访问元素。
常见的实现类有HashSet和TreeSet。
3. HashMap和Hashtable有什么区别?HashMap和Hashtable都实现了Map接口,用于存储键值对。
它们的主要区别在于线程安全性和null值的处理。
HashMap是非线程安全的,允许存储null值;而Hashtable是线程安全的,不允许存储null值。
4. 请解释一下ArrayList和LinkedList的区别。
ArrayList和LinkedList都是List的实现类。
ArrayList基于数组实现,适用于随机访问和遍历操作,插入和删除元素较慢。
LinkedList基于双向链表实现,适用于频繁的插入和删除操作,访问元素较慢。
5. 什么是迭代器(Iterator)?迭代器是用于遍历集合元素的对象。
它提供了一种统一的方式来访问集合中的元素,而不需要暴露集合的内部实现。
通过调用迭代器的方法,可以依次获取集合中的每个元素。
6. 请解释一下HashSet和TreeSet的区别。
HashSet和TreeSet都是Set的实现类。
HashSet基于哈希表实现,不保证元素的顺序,插入和查找元素的性能较好。
TreeSet基于红黑树实现,可以按照元素的自然顺序或者指定的比较器进行排序,插入和查找元素的性能较差。
Java基础知识测试_B卷讲解

Java基础知识测试_B卷讲解考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下面哪种类型的文件可以在java虚拟机中运行? ( D )A..javaB..jreC..exeD..class2.下面哪些是合法的标示符(ACD)A. _variableB. 3variable2C. what$D. _3_3.下面程序的运行结果(B)class Demo{public static int fun(int c){return c+=2;}public static void main(String[] args){int temp = fun(2);System.out.println(temp);}}A. 2B. 4C. 6D. 84.在Java中,以下(C )选项中的java命令能够将java源文件编译为字节码文件?A. javaB. javawC. javacD. jar5.关于类的命名,正确说法是(BC)A. 可以由数字和英文拉丁字母组成,且可以任意排序B. 命名要做到见名知意C. 如果是由多个单词组成,每个单词首字母大写D. 可以是Java已经定义过的关键字6.下面数组定义正确的是(A)A. int [] arr ={23,45,65,78,89};B. int [] arr=new int[10]{};C. int [] arr=new int[4]{3,4,5,6};D. int [] arr={"a",23 ,45,6};7.下面程序执行的结果是?(D )int x =1,y=1;if(x++==2 & ++y==2){x=7;}System.out.println("x="+x+" , y="+y);A. x=1 y=2B. x=7 y=1C. x=7 y=2D. x=2 y=28.同一类中有两个以上方法同名称方法重载,Java语言规定(B):A. 不允许重载B. 重载方法的参数列表必须不同C. 重载方法的返回值类型必须不同D. 重载方法的参数列表和返回值类型必须都不同。
JAVA集合试题库完整

集合一、第一模块:知识点讲解图解集合Set HashMap TreeMapLinkedHashMap ArrayList LinkList HashSet TreeSet LinkedHashSet Comparable comparator1、集合的由来:我们学的语言是面向对象的语言,为了方便对多个对象进行操作,我们就必须把对象存储。
而要存储多个对象,就不能是一个基本变量,而应该是一个容器类型的变量。
这样就引入了集合。
*以前接触过得容器:数组、StringBuffer 等由于StringBuffer 的结果是一串字符,不一定能满足我们的要求,所以我们只能选择数组,这就是对象数组。
而对象数组不能适应变化的需求,因为数组的长度是固定。
2、数组和集合的区别①长度区别集合的长度可变数组长度不可变②内容区别集合可以存储不同类型的元素数组存储的是同一种类型的元素③元素的数据类型问题数组可以存储基本数据类型也可以存储引用数据类型集合只能存储引用类型,Java提供了不同的集合类,这多个集合的数据结构不同*数据结构:数据的存储方式Java提供的多种集合类,他们的数据结构不同,但是,他们肯定有共性的内容(存储、获取、判断等)。
通过不断的向上提取,我们就能够得到一个集合的继承体系结构图。
把上面这段话转化为图形的形式:collectionArrayList Vector LinkedList HashSetTreeSet通过这个图可以清楚的理解集合现在我们从最低层开始学习一、Collection(接口Java.util )1、功能:①:添加boolean add(Object obj) 添加一个元素boolean addAll(Collection c)添加一个集合的元素②:删除void clear() 移除所有元素boolean remove(Object obj) 移除一个元素boolean removeAll(Collection c)移除一个集合的元素③:判断boolean cotains(Object o)判断集合中是否包含指定元素boolean containsAll(Collection c)判断集合中是否包含指定集合Collection c1=new ArrayList();c1.add("hello");c1.add("java");ArrayList();"containsAll:"System.out.println(c1);System.out.println(c2);打印结果:containsAll:falsec1[hello, java, world]c2[a, c, world]boolean isEmpty() 判断是否是空④获取Iterator<E> iterator()⑤长度int size()⑥交集功能(了解)boolean retainAll(Collection c)交集两个集合中都有的元素,返回值的意思?假设有两个集合A,B。
java集合练习题(打印版)

java集合练习题(打印版)# Java集合练习题## 一、选择题1. 下列哪个不是Java集合框架中的一部分?A. ArrayListB. LinkedListC. HashMapD. MyCollection2. 在Java中,哪个接口提供了对集合元素的迭代访问?A. CollectionB. IteratorC. ListD. Set3. Java集合框架中的哪个类是线程安全的?A. ArrayListB. LinkedListC. HashMapD. Vector4. 以下哪个方法用于判断一个集合是否包含特定的元素?A. add()B. contains()C. remove()D. size()5. 以下哪个方法用于获取集合中的元素个数?A. add()B. contains()C. remove()D. size()## 二、简答题1. 解释ArrayList和LinkedList的主要区别。
2. 描述HashMap的工作原理。
3. 为什么在Java中使用迭代器遍历集合是安全的?## 三、编程题1. 题目:创建一个ArrayList,添加5个整数元素,并打印出这些元素。
```javaArrayList<Integer> list = new ArrayList<>();// TODO: 添加元素并打印```2. 题目:使用LinkedList实现一个简单的队列,添加3个元素,并按顺序打印出来。
```javaLinkedList<Integer> queue = new LinkedList<>();// TODO: 添加元素并打印```3. 题目:创建一个HashMap,存储学生的名字和分数,然后遍历HashMap并打印每个学生的名字和分数。
```javaHashMap<String, Integer> studentScores = new HashMap<>();// TODO: 添加学生分数并打印```4. 题目:实现一个程序,使用HashSet存储一组整数,然后检查并打印一个给定整数是否在HashSet中。
java 集合练习题

java 集合练习题在Java编程中,集合(Collection)是非常重要的数据结构,用于存储一组对象。
它们提供了许多有用的方法和功能,可以帮助我们有效地操作和管理数据。
本文将介绍一些Java集合的练习题,旨在帮助读者加深对集合的理解和应用。
练习题一:集合的创建和初始化请编写Java代码,实现以下功能:1. 创建一个ArrayList集合,用于存储整型数据。
2. 初始化这个ArrayList,使其包含以下元素:[1, 3, 5, 7, 9]。
3. 遍历ArrayList,将每个元素打印到控制台。
解答:```javaimport java.util.ArrayList;public class ArrayListExercise {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<>();numbers.add(1);numbers.add(3);numbers.add(5);numbers.add(7);numbers.add(9);for (int number : numbers) {System.out.println(number);}}}```练习题二:集合的添加和删除元素请编写Java代码,实现以下功能:1. 创建一个HashSet集合,用于存储字符串数据。
2. 初始化这个HashSet,使其包含以下元素:["apple", "banana", "orange"]。
3. 向HashSet中添加新元素:"grape"。
4. 从HashSet中删除元素:"banana"。
5. 遍历HashSet,将每个元素打印到控制台。
解答:```javaimport java.util.HashSet;public class HashSetExercise {public static void main(String[] args) {HashSet<String> fruits = new HashSet<>();fruits.add("apple");fruits.add("banana");fruits.add("orange");fruits.add("grape");fruits.remove("banana");for (String fruit : fruits) {System.out.println(fruit);}}}```练习题三:集合的查找和排序请编写Java代码,实现以下功能:1. 创建一个LinkedList集合,用于存储字符串数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集合部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下列选项哪个正确( AC)a)对象数组是引用数据类型b)对象数组是基本数据类型c)对象数组存储的元素是引用数据类型d)对象数组存储的元素是基本数据类型2.下列选项关于集合和数组的区别说法正确的是( A )a)集合的长度是可变的,数组的长度是不可变的b)集合的长度是不可变的,数组的长度是可变的c)集合和数组都能存储基本数据类型和存储引用类型d)集合只能存储基本数据类型,数组既能存储基本类型也能存储引用类型3.Collection获取长度的方法是哪个(B )a)length()b)size()c)add()d)iterator()4.将集合转换成数组的方法是哪个( C )a)toCharArray()b)getBytes()c)toArray()d)size()5.iterator()方法的功能是什么( C)a)获取集合对象b)获取集合的长度c)获取迭代器对象d)获取集合中元素6.下面哪些方式可以避免并发修改异常的发生( ABC)a)用普通for循环和get()遍历集合,增删集合元素b)用列表迭代器遍历集合,使用列表迭代器的add()添加元素c)用普通迭代器遍历集合,使用普通迭代器的remove()删除元素 iterator(普通迭代器)d)没有方法能解决并发修改异常7.下列关于Vector说法正确的是(AD )a)Vector是JDK1.0开始出现的b)Vector是一个抽象类c)Vector是一个接口d)Vector后来被ArrayList取代了,但是某些老项目中还在延续使用8.数组数据结构的特点是什么( AC )a)增删慢b)查询慢c)查询快d)增删快9.下列描述ArrayList集合特点正确的是( BD )a)底层是链表数据结构b)底层是数组数据结构c)是线程安全的d)是线程不安全的10.列描述LinkedList集合特点正确的是(D )a)底层是数组数据结构b)底层是二叉树结构c)是线程安全的d)是线程不安全的11.下列关于ArrayList的contains(Object obj)方法的理解正确的是(ABC )a)底层会调用obj的equals方法b)如果这个方法的返回值是true,就说明集合中含有obj这个元素c)如果这个方法的返回值是false,就说明集合中没有obj这个元素d)这是一个静态方法12.在下列代码中,关于list.remove(new Person(“张三”,23))方法的作用理解正确的是( CD )ArrayList list = new ArrayList();list.add(new Person("张三", 23));list.add(new Person("张三", 23));list.add(new Person("李四", 24));list.remove(new Person("张三", 23));a)代码移除了所有的张三b)如果Person类实现了equals方法,那么就会移除所有张三c)如果Person类实现了equals方法,那么就会移除一个张三d)可能不会移除任何对象13.下列代码list中的元素存储的顺序是( D )LinkedList list = new LinkedList();list.addFirst("a");list.addFirst("b");list.addFirst("c");list.addFirst("d");list.addLast("e");System.out.println(list);a)abcdeb)edcbac)acdbed)dcbae14.Java中,关于队列的的说法正确的是(AD )a)队列的特点是先进先出b)队列的特点是后进先出c)队列的特点是先进后出d)队列的特点是后进后出15.下列有关泛型的代码中,说法正确的是(A ) ?ArrayList<Person> list = new ArrayList<Person>();a)list集合里面只能存放Person对象b)list集合里面能存放字符串c)list集合里面能存放Person的子类对象d)list集合里面可以存放Object类型的对象16.下列关于泛型说法不正确的是(B )a)泛型的出现可以把运行时出现的问题提前放到编译时期就发现b)泛型的出现可以把编译时出现的问题放到运行之后就发现c)泛型可以避免强制类型转换d)泛型是一种安全机制17.观察如下代码,下列说法不正确的是( A )public class Tool<Q> {}a)格式错误,因为Q不知道是什么b)可以这样创建对象:new Tool<String>();c)去掉Tool上的Q,可以用String来代替d)可以这样创建对象:new Tool<Person>();18.下面泛型方法中,说法正确的是( A )?private <T,Q> void show2(T t) {}a)在调用show2方法的时候,才会确定T的类型是什么b)此方法会报错,因为格式不对c)定义格式错误,此方法中<T,Q>应该改为<T>d)定义格式错误,参数列表应该改为(T,Q t)19.下列增强for循环的代码中,有关说法正确的是( D ) ?for(int x : arr){System.out.println(x);}a)arr必须是一个int数组b)arr 可以是字符串数组c)arr 必须是一个集合d)arr可以是数组也可以是集合对象20.要遍历元素对象,下面横线处填写的代码应为( BC )ArrayList<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("b");for( ____________ ){System.out.println(x);}a)int x : listb)Object x : listc)String x : listd)int x=0;x<list.size();x++21.能删除下面集合中所有的字符串“b”的代码的是( C )ArrayList<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("b");list.add("c");list.add("d");a)for(int i = 0; i < list.size(); i++) {if("b".equals(list.get(i))) {list.remove(i);}}b)for(String str : list){if(“b”.equals(str)){list.remove(str);}}c)for(int i = 0; i < list.size(); i++) { if("b".equals(list.get(i))) {list.remove(i--);}}d)for(String s : list){list.remove(“b”);}22.关于可变参数的说法正确的是( ACD)a)可变参数的格式为【数据类型…变量名】b)可变参数不能打印c)直接打印可变参数,得到的是一个地址值d)可变参数可以传递任意多个同类型对象23.使用HashSet存储对象,如何保证唯一(C )a)重写equals方法b)让要存储的类实现Compartor,重写compare方法c)根据成员变量重写HashCode方法和equals方法d)重写contains方法24.HashSet在创建对象存储元素的时候,以下说法错误的是(D )a)可以使用泛型b)可以存储任意内容c)存储和取出的顺序不同d)存储的元素会按照一定的规则,不会去除重复元素25.HashSet中常见的方法有(D )a)a dd,remove.get,sizeb)get(int pos)c)insert()d)add,remove,size26.根据下面的代码,选出空白处应填写的代码表示存储1-20的随机数( A )HashSet<Integer> hs = new HashSet<Integer>();Random r = new Random();while(hs.size() < 10) {补全此处代码hs.add(num);}for (Integer integer : hs) {System.out.println(integer);}a)i nt num = r.nextInt(20) + 1;b)int num = r.nextInt(20) ;c)Math.random();d)Math.random(20)+1;27.根据下面的代码,选出空白处应填写的代码( A )Scanner sc = new Scanner(System.in);System.out.println("请输入一行字符串:");String line = 补全此处代码;char[] arr = line.toCharArray();HashSet<Character> hs = new HashSet<>();for(char c : arr) {hs.add(c); }for (Character ch : hs) {System.out.println(ch);}a)S tring line = sc.nextLine();b)String line = sc.newLine();c)String line = sc.readLine();d)String line = sc.getString();28.TreeSet底层实际的操作对象是( A )a)TreeMapb)HashMapc)LinkedHashMapd)LinkedTreeMap29.下面的方法,目的是在TreeSet中对元素进行排序,但是要保留重复元素,补全下面的代码( a )public static void sort(List<String> list) {TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {@Overridepublic int compare(String s1, String s2) {int num = pareTo(s2);补全此处代码}});ts.addAll(list);list.clear();list.addAll(ts);a)return num == 0 ? 1 : num;b)return num == 1 ? 0 : num;c)return num == 1;d)return num;30.比较器必须实现以下哪个接口( A)a)Comparatorb)Comparablec)Collectiond)Map31.关于Map集合的描述,以下说法错误的是(D)a)Map集合是双列集合b)Map集合的数据结构只针对键有效c)Map集合的键是不可以重复的d)以上都不对32.往Map集合中添加元素,可以通过以下那个方法(A)a)pu t(K key,V value)b)add(K key,V value)c)keySet(K key,V value)d)containsKey(Object key)33.Map集合中,获取所有键的集合,是以下哪个方法(C)a)r emove()b)entrySet()c)keySet()d)keys()34.Itetator迭代器中的hasNext()方法的作用是(A)a)判断集合中是否还有下一个元素b)判断集合中是否还有上一个元素c)获取集合中的下一个元素d)获取集合中的上一个元素35.Map集合中,获取所有键值对的集合是那个方法(A)a)entrySet()b)values()c)keySet()d)keyValues()36.应用程序的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());则输出的结果是 ( D )a)编译失败b)bbbc)cccd)cccbbbaaa37.TreeMap通过自然排序保证元素的唯一性,必须重写哪个方法(B)a)equals()b)compareTo()c)compare()d)toString()38.TreeMap通过比较器接口,保证元素唯一性,必须重写哪个方法(C)a)equals()b)compareTo()c)compare()d)toString()39.使用TreeSet的无参构造创建集合对象存储元素时,该元素必须(B)a)有main方法b)必须实现Comparable接口//否则会出现类型转换异常ClassCaseExceptionc)有get和set方法d)必须实现Serializable接口40.Collections工具类中的binarySearch()方法描述正确的是(D)a)binarySearch()方法只能操作Set集合b)binarySearch()方法可以操作所有的集合c)binarySearch()方法只能操作Map集合d)binarySearch()方法只能操作List集合。