①foreach循環java
for (String e : map.keySet()) { System.out.println(e+"="+map.get(a)); }
②迭代器編程
Set<String> set=map.keySet(); Iterator<String> it=set.iterator(); while(it.hasNext()){ String a=it.next(); System.out.println(a+"="+map.get(a)); }
實驗總結:
這道題中,我學習到,Scanner不只能夠從控制檯System.in
中讀取,也能夠從字符串String
中讀取,使用這種方式,能夠自動以空格爲分隔符,對單詞進行劃分,對比split
要方便得多,且輸出不容易出錯。具體語法是:學習
Scanner sc= new Scanner(line); while(sc.hasNext()){ list.add(sc.next()); }
此題還遇到一個粗心的小問題,就是使用equals
和指定對象str
進行對比時,給str
加上了引號。修改後提交正確。測試
List中刪除元素的方法
方法一:須要注意的是,這個方法要從下標倒序開始刪除,避免刪除後下表修改致使跳過元素。設計
for (int i=list.size()-1;i>=0;i--) { if((list.get(i)).equals(str)){ list.remove(i); } }
方法二:使用迭代器刪除元素3d
for(Iterator<Integer> iterator = list.iterator();iterator.hasNext(); ){ int e = iterator.next(); if(e%2==0) iterator.remove(); }
新建HsahMap對象爲map while(1){ if(輸入爲「!!!!」) break; else if(map中已有元素) 將(key元素,value+1)傳入map else (key,value=1)傳入map } 建立ArrayList對象list 實現Collections接口對map對象進行排序 輸出map的長度 輸出排序後list中前十個數據
此題的關鍵是運用的hashmap,其中key存放單詞,value存放單詞出現的次數。在將數據都輸入map後,如何排序成爲個人攔路石。在老師的指點下,知道了須要經過ArrayList來存放map數據,並接入Collections接口實現排序。、
感想:
此題若讓我獨立完成會很是困難,問題在於我沒法很快地將ArrayLIst的知識u也能用到此題中。這提醒我,要增強綜合編程能力,不能只是簡單地完成每一章節的學習,而要不時地將各章節內容結合起來進行變成。code
新建Map對象map,key爲String,value爲ArrayList 建立ArrayList對象line while(true){ if (遇到("!!!!!")) { break; } else { if(map中沒有相應的key) 把單詞添加到map中,同時將當前行數的值添加到value中 else 判斷是否已經存在於value中,若沒有,則添加當前行數到value中 } 建立迭代器,遍歷輸出,且以空格分隔 }
答:此題未能獨立完成,僅完成存放並輸出map。對於倒排索引,閱讀同窗的代碼稍微有一點頭緒。不能理解的地方是,value的類型爲ArrayList,同窗解釋說方便存儲單詞出現的行數。除了不能理解如何實現倒排索引,我還考慮過一行出現多個相同單詞的狀況,以及一些其餘的狀況,但最初的輸出行數都未能實現,這些思考也就一樣沒有實現。對象
編寫一個Student類,屬性爲:blog
private Long id; private String name; private int age; private Gender gender;//枚舉類型 private boolean joinsACM; //是否參加過ACM比賽
建立一集合對象,如List
List<Student> search(List<Student> stuList, Long id, String name, int age, Gender gender, boolean joinsACM)
,而後調用該方法將id>某個值,name爲某個值, age>某個值, gender爲某個值,參加過ACM比賽的學生篩選出來,放入新的集合。在main中調用,而後輸出結果。(截圖:出現學號、姓名)
List<Student> newStudent = s.stream().filter(e -> e!=null&&e.getId()>50L&&e.getName().equals("Gao")&&e.getAge()>18&&e.getGender()==Gender.male&&e.isJoinsACM()==true).collect(Collectors.toList());
public interface GeneralStack<E> { E push(E item); E pop(); E peek(); public boolean empty(); public int size(); }
答:使用ArrayListIntegerStack
定義完成後,只能夠存放Integer類型。使用泛型,能夠根據定義不一樣,存放不一樣類型的棧,包括本身定義的引用類型,使得棧的應用範圍變廣闊不少,顯示了擴展性。
題目集:jmu-Java-05-集合
在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
須要有兩張圖(1. 排名圖。2.PTA提交列表圖)
爲了截圖完整的提交列表,把界面縮小了,老師能夠放大網頁界面查看。
須要將每週的代碼統計狀況融合到一張表中。
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 639 | 639 | 16 | 16 |
4 | 639 | 0 | 16 | 0 |
5 | 841 | 202 | 19 | 3 |
6 | 1075 | 234 | 23 | 4 |
7 | 1419 | 344 | 27 | 4 |
8 | 2028 | 609 | 33 | 6 |
9 | 2194 | 166 | 37 | 4 |
10 | 2625 | 431 | 41 | 4 |
本身的目標能實現嗎?
這是學期初頂下的目標
就目前來看,雖然被各類工做纏身,但學習還算跟上了。半個學期過去,目前代碼是2600行,距離目標6000行還有必定的距離。後續學生工做不那麼多,只須要專一學習和科研立項,那麼這一目標仍是能夠實現的。
維度 | 程度 |
---|---|
語法 | PTA的題目大部分可以自主完成,即便要花費一點時間,但語法基礎基本掌握 |
面向對象設計 | 可以自主設計對應的類,對對象的屬性和方法可以符合需求 |
應用能力 | 較欠缺,尤爲綜合應用能力,剩下半個學期着重鍛鍊這一能力 |
至今爲止代碼行數 | 2625 |