Java程序设计基础(微课版)(第2版)第8章习题与答案_第1页
Java程序设计基础(微课版)(第2版)第8章习题与答案_第2页
Java程序设计基础(微课版)(第2版)第8章习题与答案_第3页
Java程序设计基础(微课版)(第2版)第8章习题与答案_第4页
Java程序设计基础(微课版)(第2版)第8章习题与答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章习题练习与参考答案第一部分:习题一、选择题1.以下关于遍历集合的说法,错误的是()A.可以使用增强foreach循环遍历List和Set集合B.可以使用普通for语句循环遍历List和Set集合C.可以使用迭代器遍历List和Set集合D.遍历Map时,可以先将Map中的key提取出来,遍历key集合,然后再通过key获取value2.以下关于集合的描述,错误的是()A.ArrayList、HashMap、HashSet等集合的顶级接口都是CollectionB.ArrayList的底层是数组结构C.可以使用增强for或者迭代器Iterator遍历Set集合D.HashMap中存储的是键值对数据3.Java语言中,集合类都位于哪个包中()A.java.utilB.java.langC.java.arrayD.java.collections4.以下()不是Collection接口中包含的方法A.iteratorB.isEmptyC.toArrayD.setText5.如果一个list初始化为{5,3,1},执行以下代码后,其结果为()

nums.add(6);

nums.add(0,4);

nums.remove(1);A.[5,3,1,6]B.[4,3,1,6]C.[4,3,6]D.[5,3,6]6.以下Java程序代码,执行后的结果是()

java.util.HashMapmap=newjava.util.HashMap();

map.put("name",null);

map.put("name","Jack");

System.out.println(map.size());A.0B.nullC.1D.27.对集合元素进行排序,应该使用()类A.HashSetB.TreeSetC.LinkedListD.ListIterator8.Java采用()接口处理键值对的集合A.SortB.SetC.MapD.Iterator9.Iterator接口只能从前往后遍历集合,如果需要从后向前遍历时实现增加、删除以及替换集合元素,则须采用()接口A.SetB.ForeachC.HashSetD.ListIterator10.下面说法正确的是()A.LinkedList不能进行队列的先进先出操作B.ArrayList实现了数据结构的顺序存储结构C.remove()不能删除指定位置的元素D.Stack实现了队列的操作二、编程题1.集合A={1,2,3,4}和B={1,3,7,9,11},编写程序输出A和B的交集、并集和差集。2.编写敏感词过滤程序。输入一个字符串,将里面的敏感词替换成**。说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如"色情""恐怖""枪""军火"等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。3.编写一程序,将一组随机整数添加到List集合中,使用尽可能简单的操作将List中重复数值去除并输出。

第二部分:参考答案一、选择题答案与解析1.答案:B解析:Set集合没有索引,不能使用普通for循环(需要下标)遍历,只能用foreach或迭代器。List有索引可以用普通for。2.答案:A解析:HashMap实现的是Map接口,不是Collection接口。Collection是List和Set的顶级接口。B、C、D描述都正确。3.答案:A解析:Java集合框架全部位于java.util包中。java.lang是核心类包;java.collections不存在。4.答案:D解析:setText是Swing组件的方法,不是Collection接口的方法。A、B、C都是Collection的方法。5.答案:B解析:初始[5,3,1]→add(6)→[5,3,1,6]→add(0,4)在位置0插入→[4,5,3,1,6]→remove(1)删除位置1的5→[4,3,1,6]。6.答案:C解析:HashMap的key不允许重复,第二次put("name","Jack")会覆盖第一次的值。所以只有1个entry,size()=1。7.答案:B解析:TreeSet是有序集合,元素按自然排序或Comparator排序。HashSet无序;LinkedList是链表;ListIterator是迭代器。8.答案:C解析:Map接口专门处理键值对(key-value)映射。Set是无序不重复集合;Iterator是迭代器。9.答案:D解析:ListIterator支持双向遍历,还支持add()、set()、remove()修改元素。Iterator只能单向遍历且只能remove。10.答案:B解析:ArrayList底层是数组,实现顺序存储。A错误(LinkedList支持队列);C错误(remove(index)可以按位置删);D错误(Stack是栈LIFO)。二、编程题参考答案第1题参考答案程序代码:importjava.util.*;

publicclassSetOperation{

publicstaticvoidmain(String[]args){

Set<Integer>A=newHashSet<>(Arrays.asList(1,2,3,4));

Set<Integer>B=newHashSet<>(Arrays.asList(1,3,7,9,11));

//交集

Set<Integer>intersection=newHashSet<>(A);

intersection.retainAll(B);

//并集

Set<Integer>union=newHashSet<>(A);

union.addAll(B);

//差集(A-B)

Set<Integer>difference=newHashSet<>(A);

difference.removeAll(B);

System.out.println("集合A:"+A);

System.out.println("集合B:"+B);

System.out.println("交集:"+intersection);

System.out.println("并集:"+union);

System.out.println("差集(A-B):"+difference);

}

}运行结果:集合A:[1,2,3,4]集合B:[1,3,7,9,11]交集:[1,3]并集:[1,2,3,4,7,9,11]差集(A-B):[2,4]第2题参考答案程序代码:publicclassSensitiveFilter{

publicstaticvoidmain(String[]args){

String[]sensitiveWords={"色情","恐怖","枪","军火"};

Stringinput="这是一个测试,包含色情内容和恐怖言论,还有枪和军火";

Stringresult=input;

for(Stringword:sensitiveWords){

result=result.replace(word,"**");

}

System.out.println("原字符串:"+input);

System.out.println("过滤后:"+result);

}

}运行结果:原字符串:这是一个测试,包含色情内容和恐怖言论,还有枪和军火过滤后:这是一个测试,包含**内容和**言论,还有**和**第3题参考答案程序代码:importjava.util.*;

publicclassRemoveDuplicate{

publicstaticvoidmain(String[]args){

List<Integer>list=newArrayList<>();

Randomrandom=newRandom();

//添加10个1-20之间的随机数(可能重复)

for(inti=0;i<10;i++){

list.add(random.nextInt(20)+1);

}

System.out.println("原List(有重复):"+list);

//方法1:利用HashSet去重(最简单)

Set<Integer>set=newHashSet<>(list);

List<Integer>newList1=newArrayList<>(set);

System.out.println("去重后(HashSet):"+newList1);

//方法2:Java8Stream去重(保持顺序)

List<Integer>newList2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论