1.2 選作:收集你認爲有用的代碼片斷java
本次做業題集集合編程
1.1 實驗總結
answer:
本題關鍵在於remove函數和covnertStringToList函數的編寫,首先covnertStringToList函數中,關鍵語句Scanner scanner = new Scanner(Line);
,其餘並沒什麼好講的。而remove函數,須要用迭代器進行遍歷,再使用迭代器自帶remove函數來進行刪除,在調用迭代器的remove時,須要先調用next方法String str = (String) iterator.next();
安全
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.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
。
#編寫一個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.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三種類型,使用泛型後,就能夠對任何引用類型的數據都適用,消除了強制的類型轉換。
基礎參考文件GenericMain,在此文件上進行修改。
6.1 編寫方法max,該方法能夠返回List中全部元素的最大值。List中的元素必須實現Comparable接口。編寫的max方法需使得String max = max(strList)能夠運行成功,其中strList爲List
answer:
題目集:jmu-Java-05-集合
3.1. 碼雲代碼提交記錄
3.2. PTA實驗