java 集合框架习题与答案解析Word文档格式.docx

上传人:b****5 文档编号:15709411 上传时间:2022-11-15 格式:DOCX 页数:29 大小:24.45KB
下载 相关 举报
java 集合框架习题与答案解析Word文档格式.docx_第1页
第1页 / 共29页
java 集合框架习题与答案解析Word文档格式.docx_第2页
第2页 / 共29页
java 集合框架习题与答案解析Word文档格式.docx_第3页
第3页 / 共29页
java 集合框架习题与答案解析Word文档格式.docx_第4页
第4页 / 共29页
java 集合框架习题与答案解析Word文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

java 集合框架习题与答案解析Word文档格式.docx

《java 集合框架习题与答案解析Word文档格式.docx》由会员分享,可在线阅读,更多相关《java 集合框架习题与答案解析Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

java 集合框架习题与答案解析Word文档格式.docx

2.(List)有如下代码

importjava.util.*;

publicclassTestList{

publicstaticvoidmain(Stringargs[]){

Listlist=newArrayList();

list.add(“Hello”);

list.add(“World”);

list.add(1,“Learn”);

list.add(1,“Java”);

printList(list);

}

publicstaticvoidprintList(Listlist){

for(Objectobj:

list){

Stringstr=(String)obj;

System.out.println(obj);

要求:

1)把//1处的代码补充完整,要求输出list中所有元素的内容

2)写出程序执行的结果HellojavaLearnWorld

3)如果要把实现类由ArrayList换为LinkedList,应该改哪里?

ArrayList和

LinkedList使用上有什么区别?

实现上有什么区别?

把实例化的语句改为newLinkedList();

ArrayList数组实现查询快增删慢

LinkedList链表实现查询慢增删快

4)如果要把实现类由ArrayList换为Vector,应该改哪里?

ArrayList和Vector使

用上有什么区别?

ArrayList是线程不同步的,轻量级的,线程不安全,速度快

Vector是线程同步的,多线程访问比较安全,速度慢

3.(List)写出下面程序的运行结果

list.add(“Learn”);

list.remove(“Hello”);

list.remove(0);

for(inti=0;

i<

list.size();

i++){

System.out.println(list.get(i));

Hello

Learn

4.(Set,List)

publicclassTestListSet{

list.add(“Welcome”);

Setset=newHashSet();

set.addAll(list);

System.out.println(set.size());

选择正确答案

A.编译不通过

B.编译通过,运行时异常

C.编译运行都正常,//输出HashSet中不能放重复值

D.编译运行都正常,输出4

5.(List)已知有一个Worker类如下:

publicclassWorker{

privateintage;

privateStringname;

privatedoublesalary;

publicWorker(){}

publicWorker(Stringname,intage,doublesalary){

this.name=name;

this.age=age;

this.salary=salary;

publicintgetAge(){

returnage;

publicvoidsetAge(intage){

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

publicdoublegetSalary(){

returnsalary;

publicvoidsetSalary(doublesalary){

publicvoidwork(){

System.out.println(name+“work”);

完成下面的要求

1)创建一个List,在List中增加三个工人,基本信息如下:

姓名年龄工资

zhang3183000

li4253500

wang5223200

2)在li4之前插入一个工人,信息为:

姓名:

zhao6,年龄:

24,工资3300

3)删除wang5的信息

4)利用for循环遍历,打印List中所有工人的信息

5)利用迭代遍历,对List中所有的工人调用work方法。

6)为Worker类添加equals方法

6.(Set,Hash算法)为上一题的Worker类,在添加完equals方法的基础上,添加一个

hashCode方法。

publicinthashCode(){

//1

有几种写法:

1)return0;

2)

intresult=0;

if(name!

=null)result=name.hashCode();

returnresult+age;

3)returnsuper.hashCode();

现在要把Worker类放入HashSet中,并希望在HashSet中没有重复元素,则下面说法正

确的是:

A.三种写法都正确

B.1),2)写法正确,2)效率更高

C.2)写法正确,1),3)写法都不正确

7.(Set,Hash算法,方法覆盖)代码改错

classWorker{

Stringname;

intage;

doublesalary;

publicWorker(){}

publicWorker(Stringname,intage,doublesalary){

publicinthashCode(){//hashCode必须声明为公共的。

return(int)(name.hashCode()+age+salary);

//返回值类型为整形(

//equals方法实现有错

publicbooleanequals(Workerw){

if(w.name==name&

&

w.salary==salary&

w.age==age){

returntrue;

}elsereturnfalse;

publicclassTestWorker{

set.add(newWorker(“tom”,18,2000));

set.add(0,newWorker(“jerry”,18,2000));

//HashSet中没有定义带下标的add方法。

8.(Set,Hash算法)在前面的Worker类基础上,为Worker类增加相应的方法,使得Worker

放入HashSet中时,Set中没有重复元素。

并编写相应的测试代码。

}

9.(Set,Comparable接口)在前面的Worker类基础上,为Worker类添加相应的代码,

使得Worker对象能正确放入TreeSet中。

注:

比较时,先比较工人年龄大小,年龄小的排在前面。

如果两个工人年龄相同,则再

比较其收入,收入少的排前面。

如果年龄和收入都相同,则根据字典顺序比较工人姓名。

如:

有三个工人,基本信息如下:

zhang3181500

li4181500

wang5181600

zhao6172000

放入TreeSet排序后结果为:

zhao6li4zhang3wang5

importjava.util.HashSet;

publicclassTest1{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

HashSet<

Worker>

hs=newHashSet<

();

Workerw1=newWorker("

zhang3"

18,1500);

Workerw2=newWorker("

lis4"

18,1500);

Workerw3=newWorker("

wang5"

18,1600);

Workerw4=newWorker("

zhao6"

17,2000);

hs.add(w1);

hs.add(w2);

hs.add(w3);

h

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1