集合练习题解析

上传人:最**** 文档编号:116608430 上传时间:2019-11-16 格式:DOC 页数:11 大小:324.51KB
返回 下载 相关 举报
集合练习题解析_第1页
第1页 / 共11页
集合练习题解析_第2页
第2页 / 共11页
集合练习题解析_第3页
第3页 / 共11页
集合练习题解析_第4页
第4页 / 共11页
集合练习题解析_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《集合练习题解析》由会员分享,可在线阅读,更多相关《集合练习题解析(11页珍藏版)》请在金锄头文库上搜索。

1、1. 填空Collection 接口的特点是元素是_对象_;List 接口的特点是元素_有_(有|无)顺序,_不可以_(可以|不可以)重复;Set 接口的特点是元素_无_(有|无)顺序,_可以_(可以|不可以)重复;Map 接口的特点是元素是_键值对_,其中_值_可以重复,_键_不可以重复。2. (List)有如下代码import java.util.*;public class TestListpublic static void main(String args)List list = new ArrayList();list.add(“Hello”);list.add(“World”);

2、list.add(1, “Learn”);list.add(1, “Java”);printList(list);public static void printList(List list)System.out.prinltn(list);要求:1) 把/1 处的代码补充完整,要求输出list 中所有元素的内容2) 写出程序执行的结果Hello Java Learn World3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别?List list = new LinkedList();

3、LinkedList(更适用于频繁的插入、删除操作)4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使用上有什么区别?实现上有什么区别?List list = new Vector();Vector(古老的实现类、线程安全的,但效率要低于ArrayList)3. (List)写出下面程序的运行结果import java.util.*;public class TestListpublic static void main(String args)List list = new ArrayList();list.add(“Hello”)

4、;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);World Learn4. (Set,List)import java.util.*;public class TestListSetpublic static void main(String args)List list = new ArrayList();list.add(“Hello

5、”);list.add(“Learn”);list.add(“Hello”);list.add(“Welcome”);Set set = new HashSet();set.addAll(list);System.out.println(set.size();选择正确答案AA 编译不通过B 编译通过,运行时异常C 编译运行都正常,输出3D 编译运行都正常,输出45. (List)已知有一个Worker 类如下:public class Worker private int age;private String name;private double salary;public Worker (

6、)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 sal

7、ary;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 3200ArrayList L=new ArrayList();L.add(new Worker(zhang3,18,3000);L.add(new Worker(li4,25,3500);L.add(new

8、 Worker(wang5,22,3200);2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300L.add(1,new Worker(zhao6,24,330);3) 删除wang5 的信息L.remove(3);4) 利用for 循环遍历,打印List 中所有工人的信息先在Worker类中重写toString方法for(int i=0;iL.size;i+)Syso(L.get(i);5) 利用迭代遍历,对List 中所有的工人调用work 方法。Iterator it=L.iterator();while(it.hasNext()System.out.pr

9、intln(it.next();6) 为Worker 类添加equals 方法public boolean equals(Object obj) if (this = obj)return true;if (obj = null)return false;if (getClass() != obj.getClass()return false;Worker other = (Worker) obj;if (age != other.age)return false;if (name = null) if (other.name != null)return false; else if (!n

10、ame.equals(other.name)return false;return 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 中没有重复

11、元素,则下面说法正确的是:CA. 三种写法都正确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, double salary)this.name = name;this.age = age;this.salary = salary;public int hashCode() /重写父类

12、方法,权限不能小于父类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 TestWorkerpublic static void main(String args)Set set = new HashSet();set.add(new Worker(“tom”, 18, 2000);set.add(new Worker(

13、“tom”, 18, 2000);set.add(0, new Worker(“jerry”, 18, 2000);/ HashSet是无序的集合,不能在指定位置添加System.out.println(set.size();8. (Set,Hash 算法)在前面的Worker 类基础上,为Worker 类增加相应的方法,使得Worker放入HashSet 中时,Set 中没有重复元素。并编写相应的测试代码。9. (Set,Comparable 接口)在前面的Worker 类基础上,为Worker 类添加相应的代码,使得Worker 对象能正确放入TreeSet 中。并编写相应的测试代码。注:

14、比较时,先比较工人年龄大小,年龄小的排在前面。如果两个工人年龄相同,则再比较其收入,收入少的排前面。如果年龄和收入都相同,则根据字典顺序比较工人姓名。例如:有三个工人,基本信息如下:姓名 年龄 工资zhang3 18 1500li4 18 1500wang5 18 1600zhao6 17 2000放入TreeSet 排序后结果为:zhao6 li4 zhang3 wang510. (Map)关于下列Map 接口中常见的方法put 方法表示放入一个键值对,如果键已存在则_,如果键不存在则_。remove 方法接受_个参数,表示_。get 方法表示_,get 方法的参数表示_,返回值表示_。要想获得Map 中所有的键,应该使用方法_,该方法返回值类型为_。要想获得Map 中所有的值,应该使用方法_,该方法返回值类型为_。要想获得Map 中所有的键值对的集合,应该使用

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号