java集合-练习题

余年寄山水
827次浏览
2021年01月19日 11:57
最佳经验
本文由作者推荐

-个人月工作总结范文

2021年1月19日发(作者:冷鹏飞)
Fpg
1.
填空

Collection
介面の特點是元素是
___
無序可重複
______


List
介面の特點是元素
__

__
(有
|< br>無)順序,
_
可以
___
(可以
|
不可以)重複;< br>
Set
介面の特點是元素
__

___
(有|
無)順序,
____
不可以
__
(可以
|
不 可以)重複;

Map
介面の特點是元素是
__key

value
映射
______
,其中
__value__
可以重複,
_key___

可以重複。


2.

List
)有如下代碼

import .*;
public class TestList{
public static void main(String args[]){
List list = new ArrayList();
(

Hello

);
(

World

);
(1,

Learn

);
(1,

Java

);
printList(list);
}
public static void printList(List list){
//1
for(int i = 0; i< ();i++){

n((i));

}



for(Object o : list) {

n(o);

}



Iterator itor = or();

while(t()){

n(());

}

}
}
要求:

1)

//1
處の代碼補充完整,要求輸出
list
中所有元素の內容

2)
寫出程式執行の結果
Hello Java Learn World
3)
如果要把實現類由
ArrayList
換為
LinkedList
,應該改哪里?
ArrayList


LinkedList
使用上有什麼區別?實現上有什麼區別?

4)
如果要把實現類由
ArrayList
換為
Vector
,應該改哪里?
ArrayList

Vector
使

用上有什麼區別?實現上有什麼區別?


3.

List
)寫出下麵程式の運行結果

Fpg
Fpg
import .*;
public class TestList{
public static void main(String args[]){
List list = new ArrayList();
(

Hello

);
(

World

);
(

Hello

);
(

Learn

);
(

Hello

);
(0);
for(int i = 0; i<(); i++){
n((i));
}
}
}
結果
: Hello Learn

4.

Set

List


import .*;
public class TestListSet{
public static void main(String args[]){
List list = new ArrayList();
(

Hello

);
(

Learn

);
(

Hello

);
(

Welcome

);
Set set = new HashSet();
(list);
n(());
}
}
選擇正確答案
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){
Fpg
Fpg
= name;
= age;
= salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
= age;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public double getSalary(){
return salary;
}
public void setSalary(double salary){
= salary;
}
public void work(){
n(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
}
Fpg
Fpg
有幾種寫法:

1

return 0;
2


int result = 0;
if (name != null) result = de();
return result + age;
3

return de();
現在要把
Worker
類放入
HashSet
中,並希望在
HashSet
中沒有重複元素,則下麵說法正

確の是:

A.
三種寫法都正確

B. 1), 2)
寫法正確,
2)
效率更高

C. 2)
寫法正確,
1),3)
寫法都不正確



7.

Set

Hash
演算法,方法覆蓋)代碼改錯

import .*;
class Worker{
String name;
int age;
double salary;
public Worker(){}
public Worker(String name, int age, double salary){
= name;
= age;
= salary;
}
int hashCode(){
return de() + age + salary;

}
public boolean equals(Worker w){
if ( == name && == salary && == age){
return true;
}else return false;
}
}
public class TestWorker{
public static void main(String args[]){
Set set = new HashSet();
(new Worker(

tom

, 18, 2000));
(new Worker(

tom

, 18, 2000));
(0, new Worker(

jerry

, 18, 2000));
n(());
}
}
Fpg
Fpg
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
排序後結果為:

zhao6 li4 zhang3 wang5

//Worker

10.

Map
)關於下列
Map
介面中常見の方法

put
方法表示放入一個鍵值對,如果鍵已存在則
__
覆蓋
___
,如果鍵不存在則

____
添加
_____


remove
方法接受
__1_
個參數,表示
______key ____________


get
方法表示
_______< br>獲得
key
對應の
value________________
,< br>get
方法の參數表示
__key___
,返回值表示
__valu e__


要想獲得
Map
中所有の鍵,應該使用方法
_ _keySet_________
,該方法返回值類型為
____Set__

要想獲得
Map
中所有の值,應該使用方法
__valu es_________
,該方法返回值類型為
_Collection___ ___


要想獲得
Map
中所有の鍵值對の集合,應該使用方法
_entrySey__________
,該方法返回一


______
類型所組成の
Set



11.

Map
)利用
Map
,完成下麵の功能:

從命令行讀入一個字串,表示一個年份,輸出該年の世界盃冠軍是哪支球隊。如果該

年沒有舉辦世界盃,則輸出:沒有舉辦世界盃。

附:世界盃冠軍以及對應の奪冠年份,請參考本章附錄。

附錄

1.
截止到
2009
年為止,歷屆世界盃冠軍

Fpg
Fpg

2. 2008
北京奧運會男足參賽國家:

象牙海岸,阿根廷,澳大利亞,塞爾維亞,荷蘭,尼日利亞、日本,美國,中國,新西

蘭,巴西,比利時,韓國,喀麥隆,洪都拉斯,義大利



Map map=HashMap();


12.

Map
)已知某學校の教學課程內容安排如下:

Fpg
Fpg

完成下列要求:

1


使用 一個
Map
,以老師の名字作為鍵,以老師教授の課程名作為值,表示上述

課程安排。

2


增加了一位新老師
Allen

JDBC
3

Lucy
改為教
CoreJava put
方法

4


遍曆
Map
,輸出所有の老師及老師教授の課程
(Set<>

Set get(key))
5

*
利用
Map
,輸出所有教
JSP
の老師。


13.
(泛型)使用泛型,改寫第
5



14.
(泛型)使用泛型和

介面,改寫第
12
題の前
4



15. *

List
)寫出下麵程式の輸出結果

import .*;
class MyClass{
int value;
public MyClass(){}
public MyClass(int value){ = value; }
public String toString(){
return
“”
+value;
}
}
public class TestList{
public static void main(String args[]){
MyClass mc1 = new MyClass(10);
MyClass mc2 = new MyClass(20);
MyClass mc3 = new MyClass(30);
List list = new ArrayList();
(mc1);
(mc2);
Fpg
Fpg
(mc3);
MyClass mc4 = (MyClass) (1);
= 50;
for(int i = 0; i<(); i++){
n((i));
}
}
}

10 50 30
16. *

Set

HashSet
,空指針)有下麵代碼

import .*;
class Student {
int age;
String name;
public Student(){}
public Student(String name, int age){
= name;
= age;
}
public int hashCode(){
return de() + age;
}
public boolean equals(Object o){
if (o == null) return false;
if (o == this) return true;
if (ss() != ss()) return false;
Student stu = (Student) o;
if ((name) && == age) return true;
else return false;
}
}
public class TestHashSet{
public static void main(String args[]){
Set set = new HashSet();
Student stu1 = new Student();
Student stu2 = new Student(

Tom

, 18);
Student stu3 = new Student(

Tom

, 18);
(stu1);
(stu2);
(stu3);
n(());
}
}
Fpg

-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文