没有合适的资源?快使用搜索试试~ 我知道了~
java集合-练习题.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 115 浏览量
2021-10-04
18:46:05
上传
评论
收藏 498KB PDF 举报
温馨提示
试读
17页
java集合-练习题.pdf
资源详情
资源评论
资源推荐
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<list.size(); i++){
System.out.println(list.get(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 类增加相应的方法,使得
剩余16页未读,继续阅读
maodi_lzc
- 粉丝: 1
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0