java集合框架习题与答案.doc

上传人:h**** 文档编号:891063 上传时间:2018-11-05 格式:DOC 页数:30 大小:146.51KB
下载 相关 举报
java集合框架习题与答案.doc_第1页
第1页 / 共30页
java集合框架习题与答案.doc_第2页
第2页 / 共30页
java集合框架习题与答案.doc_第3页
第3页 / 共30页
java集合框架习题与答案.doc_第4页
第4页 / 共30页
java集合框架习题与答案.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、java 集合框架(习题)集合框架Key Point* Collection 接口、Set 接口、List 接口基本操作* List 接口及其实现类* Set 接口及其实现类* 迭代遍历* Hash 算法与 hashCode 方法* Comparable 接口* Map 接口及其实现类* 遍历 Map* 泛型练习1. 填空Collection 接口的特点是元素是对象;List 接口的特点是元素有(有|无)顺序,可以(可以| 不可以)重复;Set 接口的特点是元素无(有 |无)顺序,不可以(可以|不可以)重复;Map 接口的特点是元素是键值对,其中值可以重复,键不可以重复。2. (List)有如

2、下代码import java.util.*;public class TestListpublic 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)for(Object obj:list)String str=(String)obj;System.out.println

3、(obj);要求:1) 把/1 处的代码补充完整,要求输出 list 中所有元素的内容2) 写出程序执行的结果 Hello java Learn World3) 如果要把实现类由 ArrayList 换为 LinkedList,应该改哪里? ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别?把实例化的语句改为 new LinkedList();ArrayList 数组实现 查询快 增删慢LinkedList 链表实现 查询慢 增删快4) 如果要把实现类由 ArrayList 换为 Vector,应该改哪里?ArrayList 和 Vector 使用上有什么区别?实

4、现上有什么区别?ArrayList 是线程不同步的,轻量级的,线程不安全,速度快Vector 是线程同步的 ,多线程访问比较安全,速度慢3. (List)写出下面程序的运行结果import java.util.*;public class TestListpublic 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);

5、for(int i = 0; i hs=new HashSet();Worker w1=new Worker(“zhang3“, 18, 1500);Worker w2=new Worker(“lis4“,18,1500);Worker w3=new Worker(“wang5“,18,1600);Worker w4=new Worker(“zhao6“,17,2000);hs.add(w1);hs.add(w2);hs.add(w3);hs.add(w4);System.out.println(hs.size();System.out.println(hs);class Worker imp

6、lements ComparableString name;int age;double salary;public Worker()public Worker(String name, int age, double salary)this.name = name;this.age = age;this.salary = salary;Overridepublic int compareTo(Worker o) / TODO Auto-generated method stubif(this.age!=o.age)return this.age-o.age;else if(this.sala

7、ry!=o.salary)/Integer integer1=new Integer(this.salary)return new Double(this.salary).compareTo(new Double(o.salary);else if(this.name.equals(o.name)return pareTo(o.name);return 0;Overridepublic int hashCode() final int prime = 31;int result = 1;result = prime * result + age;result = prime * result

8、+ (name = null) ? 0 : name.hashCode();long temp;temp = Double.doubleToLongBits(salary);result = prime * result + (int) (temp (temp 32);return result;Overridepublic boolean equals(Object obj) if (this = obj)return true;if (obj = null)return false;if (getClass() != obj.getClass()return false;Worker ot

9、her = (Worker) obj;if (age != other.age)return false;if (name = null) if (other.name != null)return false; else if (!name.equals(other.name)return false;if (Double.doubleToLongBits(salary) != Double.doubleToLongBits(other.salary)return false;return true;Overridepublic String toString() / TODO Auto-g

10、enerated method stubreturn age+“/“+salary+“/“+name;10. (Map)关于下列 Map 接口中常见的方法put 方法表示放入一个键值对,如果键已存在则新值替换旧值,如果键不存在则增加一个键值对。remove 方法接受一个参数,表示从映射中移除其映射关系的键。get 方法表示返回指定键所映射的值,get 方法的参数表示移除的其映射关系的键,返回值表示与 key 关联的值。要想获得 Map 中所有的键,应该使用方法 ketSet,该方法返回值类型为 Set 集合。要想获得 Map 中所有的值,应该使用方法 get,该方法返回值类型为指定键所映射的值

11、。要想获得 Map 中所有的键值对的集合,应该使用方法 entrySet,该方法返回一个Map.Entry 类型所组成的 Set。11. (Map)利用 Map,完成下面的功能:从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该年没有举办世界杯,则输出:没有举办世界杯。附:世界杯冠军以及对应的夺冠年份,请参考本章附录。public class Bk18 public static void main(String args) / TODO Auto-generated method stubBufferedReader br=new BufferedReader(new InputStreamReader(System.in);String year=null;try year=br.readLine(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();Map map=new HashMap();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。