java集合-练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 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){ = 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) { = 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 }