201521123084 《Java程序設計》第8周學習總結

1. 本週學習總結

1.1 以你喜歡的方式(思惟導圖或其餘)概括總結集合與泛型相關內容。

1.2 選作:收集你認爲有用的代碼片斷java

2. 書面做業

本次做業題集集合編程

1. List中指定元素的刪除(題目4-1)

1.1 實驗總結
answer:
本題關鍵在於remove函數和covnertStringToList函數的編寫,首先covnertStringToList函數中,關鍵語句Scanner scanner = new Scanner(Line);,其餘並沒什麼好講的。而remove函數,須要用迭代器進行遍歷,再使用迭代器自帶remove函數來進行刪除,在調用迭代器的remove時,須要先調用next方法String str = (String) iterator.next();安全

2. 統計文字中的單詞數量並按出現次數排序(題目5-3)

2.1 僞代碼(簡單寫出大致步驟)函數

answer:性能

遍歷text的每個單詞
        創建map映射;
        if(str重複出現)
            鍵值+1
        else
        鍵值=1

2 實驗總結學習

answer:測試

本題用到TreeMap。其中使用到Collections.sort自定義排序,其中,Collections若是想對Map進行排序,能夠將Map轉化成List,List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(tmap.entrySet());進行排序。3d

3. 倒排索引(題目5-4)

3.1 截圖你的提交結果(出現學號)
code

3.2 僞代碼(簡單寫出大致步驟)對象

answer:

if (行中有關鍵字)
           在關鍵字集合中加入行號
       for (每次搜索) { 
        if (表 == 0)
            System.out.println("found 0 results");
        else {
            System.out.println(行);

3.3 實驗總結

answer:

本題主要使用TreeMap<String, Set<Integer>> line = new TreeMap<String, Set<Integer>>(); ,來完成查找功能,是用出現的關鍵字來肯定行號,以後用行號出現的次數來肯定輸出,若是沒查找到,輸出found 0 results

4. Stream與Lambda

#編寫一個Student類,屬性爲:

private Long id;
   private String name;
   private int age;
   private Gender gender;//枚舉類型
   private boolean joinsACM; //是否參加過ACM比賽

建立一集合對象,如List,內有若干Student對象用於後面的測試。

4.1 使用傳統方法編寫一個方法,將id>10,name爲zhang, age>20, gender爲女,參加過ACM比賽的學生篩選出來,放入新的集合。在main中調用,而後輸出結果。
answer:
關鍵代碼:


運行結果:

4.2 使用java8中的stream(), filter(), collect()編寫功能同4.1的函數,並測試。
answer:

運行結果:

4.3 構建測試集合的時候,除了正常的Student對象,再往集合中添加一些null,而後從新改寫4.2,使其不出現異常。
answer:

5. 泛型類:GeneralStack(題目5-5)

5.1 截圖你的提交結果(出現學號)

5.2 GeneralStack接口的代碼
answer:
interface GeneralStack {
public E push(E item);
ArrayList getList();
public E pop();
public E peek();
public boolean empty();
public int size();
}

3 結合本題,說明泛型有什麼好處
answer:

1.類型安全。  
2.消除強制類型轉換。泛型的一個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,而且減小了出錯機會。
3.潛在的性能收益。 
對於這題來講,本題的stack須要實現Interger、Double和Car三種類型,使用泛型後,就能夠對任何引用類型的數據都適用,消除了強制的類型轉換。

6. 泛型方法

基礎參考文件GenericMain,在此文件上進行修改。
6.1 編寫方法max,該方法能夠返回List中全部元素的最大值。List中的元素必須實現Comparable接口。編寫的max方法需使得String max = max(strList)能夠運行成功,其中strList爲List 類型。也能使得Integer maxInt = max(intList);運行成功,其中intList爲List 類型。
answer:

3. 碼雲上代碼提交記錄及PTA實驗總結

題目集:jmu-Java-05-集合

3.1. 碼雲代碼提交記錄

  • 在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖

3.2. PTA實驗

  • 函數(4-1),編程(5-3,5-4,5-5)
  • 實驗總結已經在做業中體現,不用寫。
相關文章
相關標籤/搜索