




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 填空Collection 接口的特点是元素是_无序可重复_;List 接口的特点是元素_有_(有|无)顺序,_可以_(可以|不可以)重复;Set 接口的特点是元素_无_(有|无)顺序,_不可以_(可以|不可以)重复;Map 接口的特点是元素是_key、value映射_,其中_value_可以重复,_key_不可以重复。2. (List)有如下代码import java.util.*;public class TestListpublic static void main(String args)List list = new ArrayList();list.add(“Hello”);l
2、ist.add(“World”);list.add(1, “Learn”);list.add(1, “Java”);printList(list);public static void printList(List list)/1for(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
3、.next(); 要求:1) 把/1 处的代码补充完整,要求输出list 中所有元素的内容2) 写出程序执行的结果Hello Java Learn World3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别?4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使用上有什么区别?实现上有什么区别?3. (List)写出下面程序的运行结果import java.util.*;public class TestListpublic st
4、atic 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; ilist.size(); i+)System.out.println(list.get(i);结果: Hello Learn4. (Set,List)import java.util.*;public class TestListSetpub
5、lic 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();选择正确答案 CA 编译不通过B 编译通过,运行时异常C 编译运行都正常,输出3D 编译运行都正常,输出45. (List)已知有一个Worker 类如下:public class Wor
6、ker private int age;private String name;private double salary;public Worker ()public Worker (String name, int age, double salary) = 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 v
7、oid setName(String 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 3000li4 25 3500wang5 22 32002) 在li4 之前插入一个工人,信息为:姓名
8、:zhao6,年龄:24,工资33003) 删除wang5 的信息4) 利用for 循环遍历,打印List 中所有工人的信息5) 利用迭代遍历,对List 中所有的工人调用work 方法。6) 为Worker 类重写equals 方法,当姓名、年龄、工资全部相等时候才返回true6. (Set,Hash 算法)为上一题的Worker 类,在添加完equals 方法的基础上,添加一个hashCode 方法。public int hashCode()/1有几种写法:1) return 0;2)int result = 0;if (name != null) result = name.hashCo
9、de();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 WorkerString name;int age;double salary;public Worker()public Worker(String name, int age, do
10、uble salary) = name;this.age = age;this.salary = salary;int hashCode()return name.hashCode() + age + salary;public boolean equals(Worker w)if ( = name & w.salary = salary & w.age = age)return true;else return false;public class TestWorkerpublic static void main(String args)Set set = n
11、ew 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 类添加相应
12、的代码,使得Worker 对象能正确放入TreeSet 中。并编写相应的测试代码。注:比较时,先比较工人年龄大小,年龄小的排在前面。如果两个工人年龄相同,则再比较其收入,收入少的排前面。如果年龄和收入都相同,则根据字典顺序比较工人姓名。例如:有三个工人,基本信息如下:姓名 年龄 工资zhang3 18 1500li4 18 1500wang5 18 1600zhao6 17 2000放入TreeSet 排序后结果为:zhao6 li4 zhang3 wang5/Worker 10. (Map)关于下列Map 接口中常见的方法put 方法表示放入一个键值对,如果键已存在则_覆盖_,如果键不存在则
13、_添加_。remove 方法接受_1_个参数,表示_key_。get 方法表示_获得key对应的value_,get 方法的参数表示_key_,返回值表示_value_。要想获得Map 中所有的键,应该使用方法_keySet_,该方法返回值类型为_Set_。要想获得Map 中所有的值,应该使用方法_values_,该方法返回值类型为_Collection_。要想获得Map 中所有的键值对的集合,应该使用方法_entrySey_,该方法返回一个_Map.Entry_类型所组成的Set。11. (Map)利用Map,完成下面的功能:从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球
14、队。如果该年没有举办世界杯,则输出:没有举办世界杯。附:世界杯冠军以及对应的夺冠年份,请参考本章附录。附录1. 截止到2009 年为止,历届世界杯冠军2. 2008 北京奥运会男足参赛国家:科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利Map map=HashMap();12. (Map)已知某学校的教学课程内容安排如下:完成下列要求:1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。2) 增加了一位新老师Allen 教JDBC3) Lucy 改为教CoreJava put方法4)
15、 遍历Map,输出所有的老师及老师教授的课程(SetMap.Entry、Set get(key)5) *利用Map,输出所有教JSP 的老师。13. (泛型)使用泛型,改写第5 题14. (泛型)使用泛型和Map.Entry 接口,改写第12 题的前4 问15. *(List)写出下面程序的输出结果import java.util.*;class MyClassint value;public MyClass()public MyClass(int value) this.value = value; public String toString()return “”+value;public
16、 class TestListpublic static void main(String args)MyClass mc1 = new MyClass(10);MyClass mc2 = new MyClass(20);MyClass mc3 = new MyClass(30);List list = new ArrayList();list.add(mc1);list.add(mc2);list.add(mc3);MyClass mc4 = (MyClass) list.get(1);mc4.value = 50;for(int i = 0; ilist.size(); i+)System
17、.out.println(list.get(i);10 50 3016. *(Set,HashSet,空指针)有下面代码import java.util.*;class Student int age;String name;public Student()public Student(String name, int age) = name;this.age = age;public int hashCode()return name.hashCode() + age;public boolean equals(Object o)if (o = null) return f
18、alse;if (o = this) return true;if (o.getClass() != this.getClass() return false;Student stu = (Student) o;if (.equals(name) & stu.age = age) return true;else return false;public class TestHashSetpublic static void main(String args)Set set = new HashSet();Student stu1 = new Student();Student
19、stu2 = new Student(“Tom”, 18);Student stu3 = new Student(“Tom”, 18);set.add(stu1);set.add(stu2);set.add(stu3);System.out.println(set.size();下列说法正确的是:A. 编译错误B. 编译正确,运行时异常C. 编译运行都正确,输出结果为3D. 编译运行都正确,输出结果为217. *(Set)有如下两个类(只写了类的属性,请自行添加相应的构造方法和get/set 方法)要求,完善Worker 和Address 类,使得Worker 对象能够正确放入HashSet
20、中:即将Worker 放入HashSet 中时不会出现重复元素。并编写相应测试代码。18. *(Map)在原有世界杯Map 的基础上,增加如下功能:读入一支球队的名字,输出该球队夺冠的年份列表。例如,读入“巴西”,应当输出1958 1962 1970 1994 2002读入“荷兰”,应当输出没有获得过世界杯附录1. 截止到2009 年为止,历届世界杯冠军2. 2008 北京奥运会男足参赛国家:科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利19. *(Map)设计Account 对象如下:要求完善设计,使得该Accou
21、nt 对象能够自动分配id。给定一个List 如下:List list = new ArrayList();list.add(new Account(10.00, “1234”);list.add(new Account(15.00, “5678”);list.add(new Account(0, “1010”);要求把List 中的内容放到一个Map 中,该Map 的键为id,值为相应的Account 对象。最后遍历这个Map,打印所有Account 对象的id 和余额。20. *(List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列。例如:Li
22、st list = new ArrayList();list.add(“Hello”);list.add(“World”);list.add(“Learn”); /此时list 为Hello World LearnreverseList(list);/调用reverseList 方法之后,list 为Learn World Hellos=list.size()for(int i=0;is/2;i+)list.set(s-1-I, set(i,list.get(s-1-i)21. *(Map,Hash 算法)有如下代码:import java.util.*;class MyKeyint keyV
23、alue;public MyKey()public MyKey(int value)this.keyValue = value;class MyValueString value;public MyValue()public MyValue(String value)this.value = value;public String toString()return value;public class TestMappublic static void main(String args)Map map = new HashMap();MyKey key1 = new MyKey(10);map
24、.put(new MyKey(10), new MyValue(“abc”);map.put(new MyKey(10), new MyValue(“cde”);System.out.println(map.get(key1);System.out.println(map.size();写出该代码的输出结果。abc ,222. *(Id,hashCode,equals)为Worker 类增加id 属性,用来唯一标识一个员工。即:如果员工的id 不同,则不管其姓名、年龄、工资是否相同,都认为是不同的员工。部分代码如下:class Workerprivate final Long id;priva
25、te String name;private double salary;private int age;public Worker(long id)this.id=id;public Worker(long id,String name,double salary,int age)this.id=id;=name;this.salary=salary;this.age=age;/构造方法/get/set 方法public boolean equals(Object obj)/1 此处仅判断id 是否相同if(obj=null)return falseif(obj=this)
26、 return true;if(obj instanceof Worker)Worker w=(Worker)obj if(w.getId()=this.id)return true;return falsepublic int hashCode()/2 此处返回hashCodereturn (int)id;要求:1) 完善构造方法和get/set 方法。要求自动分配Worker 的id2) 完善equals 方法。要求仅判断id 是否相同3) /2 处,如果写成return (int)(name.hashCode() + id.hashCode() + age + salary);是否正确?
27、为什么?23. *(综合)有如下Student 对象其中,classNum 表示学生的班号,例如“class05”。有如下ListList list = new ArrayList();list.add(new Student(“Tom”, 18, 100, “class05”);list.add(new Student(“Jerry”, 22, 70, “class04”);list.add(new Student(“Owen”, 25, 90, “class05”);list.add(new Student(“Jim”, 30,80 , “class05”);list.add(new St
28、udent(“Steve”, 28, 66, “class06”);list.add(new Student(“Kevin”, 24, 100, “class04”);在这个list 的基础上,完成下列要求:1) 计算所有学生的平均年龄2) 计算各个班级的平均分MapString,Listkey:班级value: List if(!map.constainKey(“class05”)List list =new Arraylist()list.add(100);map.put(“class05”, list)elseList list=map.get(“class05”)list.add(90);class AAint sum;int count;mapclass05 aasum:270,count 3 sum/countclass04 aa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 能源行业售后服务质量提升措施
- 2025年美国仓鼠领养协议书
- 2025湖南长沙市口腔医院·湖南中医药大学口腔医(学)院高层次专业人才引进9人考试备考试题及答案解析
- 2025广东广州市天河区同仁艺体实验小学秋季教师招聘2人笔试备考题库及答案解析
- 2025北京第二实验学校招聘4人笔试备考试题及答案解析
- 2025年肿瘤科常见恶性肿瘤治疗综合考试答案及解析
- 电力设施土方作业环境保护措施
- 2025年聘请管理公司协议书
- 2025年麻醉科手术操作技能考试答案及解析
- 学生疫苗接种和防控措施
- 内镜中心标本遗失警示教育
- 高中数学(沪教版)知识点梳理
- 食堂服务礼仪培训
- 老年髋部骨折诊疗指南
- 人教版四年级上册数学第五单元教案
- 服装的采购流程
- 工作场所暴力培训
- 物流行业运输数据报送流程与追踪机制
- 培训课件:血糖监测
- 《课程设计模式》课件
- 人工智能改变企业劳动力需求
评论
0/150
提交评论