答:
java
本次做業題集集合編程
答:ide
for (int i =list.size()-1 ; i >-1; i--) { if(list.get(i).equals(str)){ list.remove(i); } }
二、利用迭代器,先越過一個元素,判斷該元素是否知足刪除條件,是就將其刪除,循環判斷是否還有下一個元素。應先調用next,再調用remove。函數
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) { String num = (String) iterator.next(); if list.get(i).equals(str)) iterator.remove(); }
答:學習
創建 wordsMap集合 while(true){ 讀取字符串到word count=wordMap.get(word);得到該單詞出現的次數 if(word爲「!!!!!」) 跳出當前讀取單詞的循環 else if(count不爲null) wordMap.put(word,++count);//不是第一次出現的單詞,次數在原來上加一 else wordMap.put(word,1);//第一次出現的單詞,次數置爲1 } 打印wordMap的長度,得到單詞總數。 List<Map.Entry<String,Integer>> list;//取wordsMap中的鍵值對放入list中。 Collections.sort(list) {//鍵值對比較排序 compare(o1.o2) if(o1.value==o2.value) 返回o1與o2的key比較結果 else 返回o1和o2的value比較結果 } i=0; 循環輸出前10個單詞和對應次數,用i>9作標記。 System.out.println(list);
答:
一、使用HashMap集合,Key放單詞(String),value放次數(Integer)
二、循環得到單詞和出現次數。單詞第一次出現value置爲1,不然就在原有的value值上加一。測試
Integer count = words.get(word); if(count!=null){ count++;words.put(word, count); } else{ words.put(word, 1); }
三、取wordsMap鍵值對放入list.使用Map.Entry<K,V>
四、比較鍵值對的value,相同就比較key.Collections.sort方法使用內部類從新定義compare方法設計
Collections.sort(list,new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { if(o1.getValue()==o2.getValue()) return o1.getKey().compareTo(o2.getKey()); return o2.getValue()-o1.getValue(); } });
本題較難,作不出來沒關係。但必定要有本身的思考過程,要有提交結果。3d
答:code
答:對象
int count=0;//標記行數 while(true){ 讀取一行到strline; count++; if(strline爲"!!!!!") 跳出讀取單詞的循環 esle 新建Scanner,從strline讀取 Map linemap.put(Integer,String);//記錄每行的內容 while(strScanner.hasnext()){ 讀取strSacnner.next()到word中 if 集合中已經存在該單詞,則將count直接加到單詞對應的行數表中 Map wordMap.put(word,List<Integer>);//記錄單詞和單詞出現的行數集合 else 集合不存在該單詞 新建List,將當前行數add進表中,再wordMap.put(word,list); } for(Map.Entry<String,List<Integer>> e:wordMap.entrySet())//循環打印索引 println(e); while get keyString;//得到查詢關鍵字 for(Map.Entry<String,List<Integer>> e:linemap.entrySet())//在行集合的字符串中 判斷是否包含該關鍵字 if (e.getvalue.comtains(keyString)==true) println(e.getkey+e.getvalue); else println("found 0 results");
答:這題作得時間較長,但收穫也不少。首先使用兩個Map集合,wordMap存放單詞和單詞出現的行數的集(List),linemap存放行數和每一行的內容。將所需元素循環存入兩個Map中。利用Map.Entry遍歷輸出wordMap,完成索引的打印。讀取關鍵字,在linemap中操做,循環判斷每一行的value中是否有包含關鍵字,是則輸出該行的Key和value.循環結束仍沒有改關鍵字,就輸出found o result.以上是個人總體思路。
編寫一個Student類,屬性爲:
private Long id; private String name; private int age; private Gender gender;//枚舉類型 private boolean joinsACM; //是否參加過ACM比賽
建立一集合對象,如List
答:搜索方法以下:
運行結果以下:
4.2 使用java8中的stream(), filter(), collect()編寫功能同4.1的代碼,並測試(要出現測試數據)。構建測試集合的時候,除了正常的Student對象,再往集合中添加一些null,你編寫的方法應該能處理這些null而不是拋出異常。(截圖:出現學號)
答:
題集jmu-Java-05-集合之GeneralStack
答:接口代碼:
public interface GeneralStack<E> { E push(E item); //如item爲null,則不入棧直接返回null。 E pop(); //出棧,如爲棧爲空,則返回null。 E peek(); //得到棧頂元素,如爲空,則返回null. public boolean empty();//如爲空返回true public int size(); //返回棧中元素數量 }
答:在ArrayListIntegerStack中棧存放的元素類型必須明確指明,一旦指明,就沒法隨意更改。使用泛型,是使用字母E、T、K等做爲類型代號來聲明對象的類型。當接口使用泛型時,會極大遍歷接口的操做,減小不一樣類型的相同代碼,例如將GeneralStack
public class ArrayListGeneralStack
題目集:jmu-Java-05-集合
在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
須要有兩張圖(1. 排名圖。2.PTA提交列表圖)
須要將每週的代碼統計狀況融合到一張表中。
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 |
5 | 739 | 739 | 16 | 16 |
6 | 1084 | 345 | 28 | 12 |
7 | 1180 | 96 | 30 | 2 |
8 | 1627 | 447 | 35 | 5 |
9 | 1986 | 359 | 44 | 9 |
10 | 2350 | 364 | 56 | 12 |
嘗試從如下幾個維度評估本身對Java的理解程度
維度 | 程度 |
---|---|
語法 | 基本經常使用語法能夠熟練運用,PTA的題目部分能夠本身解決,部分要多多請教別人 |
面向對象設計能力 | 面向對象編程學習中,使用面向對象思想爲所要解決比較簡單的問題建模應該是能夠的 |
應用能力 | 感受基礎仍是沒打實,基本沒有什麼應用能力 |
至今爲止代碼行數 | 2350 |