java集合-练习题

萌到你眼炸
811次浏览
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

-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文


-个人月工作总结范文