java 集合框架(习题与答案)解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
List接口的特点是元素有(有|无)顺序,可以(可以|不可以)重复;
Set接口的特点是元素无(有|无)顺序,不可以(可以|不可以)重复;
Map接口的特点是元素是键值对,其中值可以重复,键不可以重复。
2.(List)有如下代码
import java.util.*;
public class TestList{
6)为Worker类添加equals方法
6.(Set,Hash算法)为上一题的Worker类,在添加完equals方法的基础上,添加一个
hashCode方法。
public int hashCode(){
//1
}
有几种写法:
1)return 0;
2)
int result = 0;
if (name != null) result = name.hashCode();
A.编译不通过
B.编译通过,运行时异常
C.编译运行都正常,//输出HashSet中不能放重复值
D.编译运行都正常,输出4
5.(List)已知有一个Worker类如下:
public class Worker {
private int age;
private String name;
private double salary;
}
public static void printList(List list){
for(Object obj:list){
String str=(String)obj;
System.out.println(obj);
}
}
}
要求:
1)把//1处的代码补充完整,要求输出list中所有元素的内容
2)写出程序执行的结果Hello java Learn World
用上有什么区别?实现上有什么区别?
ArrayList是线程不同步的,轻量级的,线程不安全,速度快
Vector是线程同步的,多线程访问比较安全,速度慢
3.(List)写出下面程序的运行结果
import java.util.*;
public class TestList{
public static void main(String args[]){
public Worker (){}
public Worker (String name, int age, double salary){
this.name = name;
this.age = age;
this.salary = salary;
}
public int getAge() {
return age;
姓名年龄工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
2)在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
3)删除wang5的信息
4)利用for循环遍历,打印List中所有工人的信息
5)利用迭代遍历,对List中所有的工人调用work方法。
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary(){
list.add(“Hello”);
list.add(“Learn”);
list.add(“Hello”);
list.add(“Welcome”);
Set set = new HashSet();
set.addAll(list);
System.out.println(set.size());
}
}
选择正确答案
java集合框架(习题)
集合框架
Key Point
* Collection接口、Set接口、List接口基本操作
* List接口及其实现类
* Set接口及其实现类
*迭代遍历
* Hash算法与hashCode方法
* Comparable接口
* Map接口及其实现类
*遍历Map
*泛型
练习
1.填空
Collection接口的特点是元素是对象;
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++){
return result + age;
return salary;
}
public void setSalarywk.baidu.comdouble salary){
this.salary = salary;
}
public void work(){
System.out.println(name + “ work”);
}
}
完成下面的要求
1)创建一个List,在List中增加三个工人,基本信息如下:
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);
3)如果要把实现类由ArrayList换为LinkedList,应该改哪里?ArrayList和
LinkedList使用上有什么区别?实现上有什么区别?
把实例化的语句改为new LinkedList();
ArrayList数组实现查询快增删慢
LinkedList链表实现查询慢增删快
4)如果要把实现类由ArrayList换为Vector,应该改哪里?ArrayList和Vector使
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();
Set接口的特点是元素无(有|无)顺序,不可以(可以|不可以)重复;
Map接口的特点是元素是键值对,其中值可以重复,键不可以重复。
2.(List)有如下代码
import java.util.*;
public class TestList{
6)为Worker类添加equals方法
6.(Set,Hash算法)为上一题的Worker类,在添加完equals方法的基础上,添加一个
hashCode方法。
public int hashCode(){
//1
}
有几种写法:
1)return 0;
2)
int result = 0;
if (name != null) result = name.hashCode();
A.编译不通过
B.编译通过,运行时异常
C.编译运行都正常,//输出HashSet中不能放重复值
D.编译运行都正常,输出4
5.(List)已知有一个Worker类如下:
public class Worker {
private int age;
private String name;
private double salary;
}
public static void printList(List list){
for(Object obj:list){
String str=(String)obj;
System.out.println(obj);
}
}
}
要求:
1)把//1处的代码补充完整,要求输出list中所有元素的内容
2)写出程序执行的结果Hello java Learn World
用上有什么区别?实现上有什么区别?
ArrayList是线程不同步的,轻量级的,线程不安全,速度快
Vector是线程同步的,多线程访问比较安全,速度慢
3.(List)写出下面程序的运行结果
import java.util.*;
public class TestList{
public static void main(String args[]){
public Worker (){}
public Worker (String name, int age, double salary){
this.name = name;
this.age = age;
this.salary = salary;
}
public int getAge() {
return age;
姓名年龄工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
2)在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
3)删除wang5的信息
4)利用for循环遍历,打印List中所有工人的信息
5)利用迭代遍历,对List中所有的工人调用work方法。
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary(){
list.add(“Hello”);
list.add(“Learn”);
list.add(“Hello”);
list.add(“Welcome”);
Set set = new HashSet();
set.addAll(list);
System.out.println(set.size());
}
}
选择正确答案
java集合框架(习题)
集合框架
Key Point
* Collection接口、Set接口、List接口基本操作
* List接口及其实现类
* Set接口及其实现类
*迭代遍历
* Hash算法与hashCode方法
* Comparable接口
* Map接口及其实现类
*遍历Map
*泛型
练习
1.填空
Collection接口的特点是元素是对象;
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++){
return result + age;
return salary;
}
public void setSalarywk.baidu.comdouble salary){
this.salary = salary;
}
public void work(){
System.out.println(name + “ work”);
}
}
完成下面的要求
1)创建一个List,在List中增加三个工人,基本信息如下:
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);
3)如果要把实现类由ArrayList换为LinkedList,应该改哪里?ArrayList和
LinkedList使用上有什么区别?实现上有什么区别?
把实例化的语句改为new LinkedList();
ArrayList数组实现查询快增删慢
LinkedList链表实现查询慢增删快
4)如果要把实现类由ArrayList换为Vector,应该改哪里?ArrayList和Vector使
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();