1. 填空
Collection 接口的特点是元素是__无序可重复_______;
List 接口的特点是元素_有__顺序,__可以__重复;
Set 接口的特点是元素_没有_顺序,__不可__重复;
Map 接口的特点是元素是__映射______,其中_value_可以重复,_key_不可以重复。
Collection 接口的特点是元素是__无序可重复_______;
List 接口的特点是元素_有__顺序,__可以__重复;
Set 接口的特点是元素_没有_顺序,__不可__重复;
Map 接口的特点是元素是__映射______,其中_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);
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
public static void printList(List list){
//1
for(int i = 0; i< list.size();i++){
System.out.(i));
}
for(Object o : list) {
System.out.println(o);
}
Iterator itor = list.iterator();
while(itor.hasNext()){
System.out.());
}
System.out.(i));
}
for(Object o : list) {
System.out.println(o);
}
Iterator itor = list.iterator();
while(itor.hasNext()){
System.out.());
}
}
}
要求:
1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容
2) 写出程序执行的结果Hello Java Learn World
3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和
LinkedList 使用上有什么区别?实现上有什么区别?
4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使
用上有什么区别?实现上有什么区别?
LinkedList 使用上有什么区别?实现上有什么区别?
4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使
用上有什么区别?实现上有什么区别?
3. (List)写出下面程序的运行结果
import java.util.*;
public class TestList{
public static void main(String args[]){
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”);
ve(“Hello”);
ve(0);
for(int i = 0; i<list.size(); i++){
System.out.(i));
}
}
}
list.add(“Hello”);
list.add(“World”);
list.add(“Hello”);
list.add(“Learn”);
ve(“Hello”);
ve(0);
for(int i = 0; i<list.size(); i++){
System.out.(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
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
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 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
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
import java.util.ArrayList;
import java.util.List;
public class list {
List<String> l=new ArrayList<String>();
Work w1=new work(zhang3,18,3000);
Work w2=new work(li4,25,3500);
Work w3=new work(wangwu,22,3200);
L.add(w1);
L.add(w2);
L.add(w3);
2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
3) 删除wang5 的信息
4) 利用for 循环遍历,打印List 中所有工人的信息
5) 利用迭代遍历,对List 中所有的工人调用work 方法。
6) 为Worker 类重写equals 方法,当姓名、年龄、工资全部相等时候才返回true
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;
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 中没有重复元素,则下面说法正
确的是:B
A. 三种写法都正确
B. 1), 2)写法正确,2)效率更高
C. 2)写法正确,1),3)写法都不正确
现在要把Worker 类放入HashSet 中,并希望在HashSet 中没有重复元素,则下面说法正
确的是:B
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[]){
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 中没有重复元素。
并编写相应的测试代码。
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 排序后结果为:
如:有三个工人,基本信息如下:
姓名 年龄 工资
zhang3 18 1500
li4 18 1500
wang5 18 1600
zhao6 17 2000
放入TreeSet 排序后结果为:
10. (Map)关于下列Map 接口中常见的方法
put 方法表示放入一个键值对,如果键已存在则__覆盖___,如果键不存在则
____添加____。
remove 方法接受__1_个参数,表示_______key________。
get 方法表示_______获得key对应的_____value___________,get 方法的参数表示_key__,返回值表示_value_。
要想获得Map 中所有的键,应该使用方法_keySet_______,该方法返回值类型为__Set<key>____。
要想获得Map 中所有的值,应该使用方法___values_______,该方法返回值类型为__collention<values>__。
要想获得Map 中所有的键值对的集合,应该使用方法__enryset_________,该方法返回一个
__mapentry<k,v>__类型所组成的Set。
要想获得Map 中所有的值,应该使用方法___values_______,该方法返回值类型为__collention<values>__。
要想获得Map 中所有的键值对的集合,应该使用方法__enryset_________,该方法返回一个
__mapentry<k,v>__类型所组成的Set。
11. (Map)利用Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该
年没有举办世界杯,则输出:没有举办世界杯。
附:世界杯冠军以及对应的夺冠年份,请参考本章附录。
附录
1. 截止到2009 年为止,历届世界杯冠军
1. 截止到2009 年为止,历届世界杯冠军
2. 2008 北京奥运会男足参赛国家:
科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西
兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利
12. (Map)已知某学校的教学课程内容安排如下:
完成下列要求:
1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述
课程安排。import java.util.HashMap;
1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述
课程安排。import java.util.HashMap;
import java.util.Map;
public class zuoye12 {
Map<String, String> map=new HashMap<String, String>();
public void test(){
map.put("Tom", "CoreJava");
map.put("John", "Oracle");
map.put("Susan", "Oracle");
map.put("Jetty", "JDBC");
map.put("Jim", "Unix");
map.put("Kevin", "JSP");
map.put("Lucy", "JSP");
System.out.println(map);
}
public static void main(String[] args) {
new zuoye12().test();
}
}
2) 增加了一位新老师Allen 教JDBC
2) 增加了一位新老师Allen 教JDBC
map.put("Allen", "JDBC");
System.out.println(map);
3) Lucy 改为教CoreJava put方法
3) Lucy 改为教CoreJava put方法
map.remove("Lucy");
map.put(java集合排序怎么实现"Lucy","CoreJava");
System.out.println(map);
4) 遍历Map,输出所有的老师及老师教授的课程(Set<Map.Entry<String,String>>、
Set<String> get(key))
Set<String> s=map.keySet();
System.out.println(s);
Iterator<String>ite=s.iterator();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论