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

1. 本週學習總結

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


2. 書面做業

本次做業題集集合函數

Q一、List中指定元素的刪除(題目4-1)
1.1 實驗總結
學習

  • 用ArraryList存儲
  • 遍歷List,找到與關鍵字相同的數字移除便可。

Q二、統計文字中的單詞數量並按出現次數排序(題目5-3)
2.1 僞代碼(簡單寫出大致步驟)
測試

//創建一個Map映射表,HashMap爲其具體實現類裝載輸入字符
    Map <String,Integer> dict = new HashMap<String,Integer>();
//HashMap中key爲鍵入字符,value爲字符出現次數。
        String key = sc.next();
        Integer value = dict.get(key);
//應題目要求輸出單詞數
        System.out.println(dict.size());
//創建一個list鏈表,ArrayList爲其實現類。講HashMap中的內容送給ArrayList 
    List<Entry<String, Integer>> list = new ArrayList();
     for(Entry<String, Integer> e:dict.entrySet()){
         list.add(e);
     }
//建立一個比較器,用於按序輸出     
 Collections.sort(list,new Comparator<Entry<String, Integer>>()
//講排好序的list輸出,要求輸入前十
 int i = 0;
    for(Entry<String, Integer> b: list){
        if(i==10)break;
System.out.println(。。。);
i++;

2.2 實驗總結3d

  • 大體學會使用HashMap,用於須要鍵值對的情形
  • 重溫一遍比較器的使用,需使用Map的Entry方法。

Q三、倒排索引(題目5-4)
3.1 截圖你的提交結果(出現學號)




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

Map<String, TreeSet<Integer>> dict = new TreeMap<String, TreeSet<Integer>>();//此Map用於創建單詞與行數的索引關係
        
        Map<Integer, String> contain = new TreeMap<Integer, String>();//此Map用於創建每行存放的字符串對照關係
        
...//寫單詞與其對應行數代碼:關鍵就是key、value。

        for (Map.Entry<String, TreeSet<Integer>> e : dict.entrySet()) {
            System.out.println(e);
        }//打印索引表
        
//經過輸入關鍵字找出第幾行並輸出行內容
            if (j == 0) {
                System.out.println("found 0 results");
            }
            if (j == 1) {
            
            } if(j > 1) {
            
}
//分爲了三種狀況,j爲關鍵字單詞個數。



3.3 實驗總結對象

  • 哇,這題對於我來講真的很難。幾乎打了一成天可是最後仍是部分正確。可能有些狀況沒有考慮到吧。後續再改進。
  • 學會了TreeSet<Integer> cop = new TreeSet<Integer>(dict.get(y[i]));這樣創建一個TreeSet,dict.get(y[i])做爲一個參數傳入,調用某個構造函數,此時傳入的是內容,不會影響到對象自己。

Q四、Stream與Lambda
編寫一個Student類,屬性爲:
blog

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中調用,而後輸出結果。
4.2 使用java8中的stream(), filter(), collect()編寫功能同4.1的函數,並測試
4.3 構建測試集合的時候,除了正常的Student對象,再往集合中添加一些null,而後從新改寫4.2,使其不出現異常。索引


泛型類:GeneralStack(題目5-5)
5.1 截圖你的提交結果(出現學號)




5.2 GeneralStack接口的代碼

interface GeneralStack<E>
{
    public E push(E item);
    public E pop();
    public E peek();
    public boolean empty();
    public int size();
}



5.3 結合本題,說明泛型有什麼好處

  • 本題實現GeneralStack泛型接口,避免許多的類型之間的強制轉化,下降風險。

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


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

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

3.1. 碼雲代碼提交記錄

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

3.2. PTA實驗 實驗總結已經寫在各個實驗下方。

相關文章
相關標籤/搜索