77范文网 - 专业文章范例文档资料分享平台

java集合-练习题

来源:网络收集 时间:2019-06-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

1. 填空

Collection 接口的特点是元素是___无序可重复______;

List 接口的特点是元素__有__(有|无)顺序,_可以___(可以|不可以)重复; Set 接口的特点是元素__无___(有|无)顺序,____不可以__(可以|不可以)重复; Map 接口的特点是元素是__key、value映射______,其中__value__可以重复,_key___不可以重复。

2. (List)有如下代码 import java.util.*; public class TestList{

public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(1, “Learn”); list.add(1, “Java”); printList(list); }

public static void printList(List list){ //1

for(int i = 0; i< list.size();i++){ System.out.println(list.get(i)); }

for(Object o : list) { System.out.println(o); }

Iterator itor = list.iterator(); while(itor.hasNext()){

System.out.println(itor.next()); } } }

要求:

1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容 2) 写出程序执行的结果Hello Java Learn World

3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和 LinkedList 使用上有什么区别?实现上有什么区别?

4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使 用上有什么区别?实现上有什么区别?

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

import java.util.*; public class TestList{

public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Hello”); list.add(“Learn”); list.remove(“Hello”); list.remove(0);

for(int i = 0; i

结果: Hello Learn

4. (Set,List) import java.util.*;

public class TestListSet{

public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“Learn”); list.add(“Hello”); list.add(“Welcome”);

Set set = new HashSet(); set.addAll(list);

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

选择正确答案 C A. 编译不通过

B. 编译通过,运行时异常 C. 编译运行都正常,输出3 D. 编译运行都正常,输出4

5. (List)已知有一个Worker 类如下: public class Worker { private int age; private String name; private double salary; public Worker (){}

public Worker (String name, int age, double salary){

this.name = name; this.age = age;

this.salary = salary; }

public int getAge() { return age; }

public void setAge(int age) { this.age = age; }

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public double getSalary(){ return salary; }

public void setSalary(double salary){ this.salary = salary; }

public void work(){

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

完成下面的要求

1) 创建一个List,在List 中增加三个工人,基本信息如下: 姓名 年龄 工资 zhang3 18 3000 li4 25 3500 wang5 22 3200

2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300 3) 删除wang5 的信息

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

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

6) 为Worker 类重写equals 方法,当姓名、年龄、工资全部相等时候才返回true

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

public int hashCode(){ //1 }

有几种写法:

1) return 0; 2)

int result = 0;

if (name != null) result = name.hashCode(); return result + age;

3) return super.hashCode();

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

A. 三种写法都正确

B. 1), 2)写法正确,2)效率更高 C. 2)写法正确,1),3)写法都不正确

7. (Set,Hash 算法,方法覆盖)代码改错 import java.util.*; class Worker{ String name; int age;

double salary; public Worker(){}

public Worker(String name, int age, double salary){ this.name = name; this.age = age;

this.salary = salary; }

int hashCode(){

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

public boolean equals(Worker w){

if (w.name == name && w.salary == salary && w.age == age){ return true;

}else return false; } }

public class TestWorker{

public static void main(String args[]){ Set set = new HashSet();

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

set.add(0, new Worker(“jerry”, 18, 2000)); System.out.println(set.size()); } }

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

Worker

放入HashSet 中时,Set 中没有重复元素。 并编写相应的测试代码。

9. (Set,Comparable 接口)在前面的Worker 类基础上,为Worker 类添加相应的代码, 使得Worker 对象能正确放入TreeSet 中。并编写相应的测试代码。

注:比较时,先比较工人年龄大小,年龄小的排在前面。如果两个工人年龄相同,则再 比较其收入,收入少的排前面。如果年龄和收入都相同,则根据字典顺序比较工人姓名。例 如:有三个工人,基本信息如下: 姓名 年龄 工资 zhang3 18 1500 li4 18 1500 wang5 18 1600 zhao6 17 2000

放入TreeSet 排序后结果为: zhao6 li4 zhang3 wang5

//Worker

10. (Map)关于下列Map 接口中常见的方法

put 方法表示放入一个键值对,如果键已存在则__覆盖___,如果键不存在则 ____添加_____。

remove 方法接受__1_个参数,表示______key____________。

get 方法表示_______获得key对应的value________________,get 方法的参数表示__key___,返回值表示__value__。

要想获得Map 中所有的键,应该使用方法__keySet_________,该方法返回值类型为____Set__。

要想获得Map 中所有的值,应该使用方法__values_________,该方法返回值类型为_Collection______。

要想获得Map 中所有的键值对的集合,应该使用方法_entrySey__________,该方法返回一个

_Map.Entry_____类型所组成的Set。

11. (Map)利用Map,完成下面的功能:

从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。

附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

1. 截止到2009 年为止,历届世界杯冠军

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java集合-练习题在线全文阅读。

java集合-练习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/652927.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: