java week 9----- 集合與泛型
1. 本周學習總結
1.1 以你喜歡的方式(思維導圖或其他)歸納總結集合與泛型相關內容。
2. 書面作業
本次作業題集集合
1. List中指定元素的刪除(題集題目)
1.1 實驗總結。並回答:列舉至少2種在List中刪除元素的方法。
答:remove中註意應該使用equals()方法輸入的str參數比較,而不是使用“==”,並且在remove過程中,在刪除當前元素後,要讓i自減。若不讓i自減,則會出現跳過下一個有可能符合條件的元素
2. 統計文字中的單詞數量並按出現次數排序(題集題目)
2.1 偽代碼(不得復制代碼,否則扣分)
答:第一步:以字符串形式存儲輸入的文字
第二步:使用HashMap存儲字符串中某個鍵(Key)對應的值(Value)
第三步:覆蓋Collections.sort中的compare方法,使用if嵌套完成次數按照降序排序,如果次數相同,則按照鍵值的字母進行排序。
2.2 實驗總結
答:本題的重點在排序,在PTA上提交代碼時註意的是要刪除中文註釋,否則會出現編譯錯誤。
3. 倒排索引(題集題目)
本題較難,做不出來不要緊。但一定要有自己的思考過程,要有提交結果。
3.1 截圖你的代碼運行結果
3.2 偽代碼(不得復制代碼,否則扣分)
答:這道題應該使用兩個“while”循環結構體,在第一個while循環中:以行的形式存儲文本,然後以TreeSet來存儲每一行中的每個單詞。
在第二個while循環中:首先對相應的字段進行關鍵字查找,如果相應字段為空,返回“found 0 results”,然後根據每一行打印出每一個單詞。
3.3 實驗總結
答:一定要學會使用TreeMap
TreeSet
,以便進行排序。
4.Stream與Lambda
編寫一個Student類,屬性為:
private Long id; private String name; private int age; private Gender gender;//枚舉類型 private boolean joinsACM; //是否參加過ACM比賽
創建一集合對象,如List
4.1 使用傳統方法編寫一個搜索方法List
4.2 使用java8中的stream(), filter(), collect()編寫功能同4.1的代碼,並測試(要出現測試數據)。構建測試集合的時候,除了正常的Student對象,再往集合中添加一些null,你編寫的方法應該能處理這些null而不是拋出異常。(截圖:出現學號)
5. 泛型類:GeneralStack
題集jmu-Java-05-集合之GeneralStack
5.1 GeneralStack接口的代碼
5.2 結合本題與以前作業中的ArrayListIntegerStack相比,說明泛型有什麽好處
6. 選做:泛型方法
基礎參考文件GenericMain,在此文件上進行修改。
6.1 編寫方法max,該方法可以返回List中所有元素的最大值。List中的元素必須實現Comparable接口。編寫的max方法需使得String max = max(strList)可以運行成功,其中strList為List
6.2 選做:現有User類,其子類為StuUser,且均實現了Comparable接口。編寫方法max1,基本功能同6.1,使得User user = max1(stuList);可以運行成功,其中stuList為List
6.3 選做:編寫int myCompare(T o1, T o2, Comparator c)方法,該方法可以比較兩個User對象,也可以比較兩個StuUser對象,傳入的比較器c既可以是Comparator
3.碼雲及PTA
題目集:jmu-Java-05-集合
3.1. 碼雲代碼提交記錄
在碼雲的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然後搜索並截圖
3.2 截圖PTA題集完成情況圖
需要有兩張圖(1. 排名圖。2.PTA提交列表圖)
3.3 統計本周完成的代碼量
需要將每周的代碼統計情況融合到一張表中。
自己的目標能實現嗎?
4. 評估自己對Java的理解程度
嘗試從以下幾個維度評估自己對Java的理解程度
維度 程度
語法 PTA的題目已經能輕松搞定,沒有什麽難得倒我的語法問題
面向對象設計能力 能熟練使用面向對象思想為所要解決的問題建模
應用能力 可以使用Java編寫一些實用的小工具
至今為止代碼行數 5000
java week 9----- 集合與泛型