本次做業題集集合java
實驗總結:這題考到了關於List的刪除,當從前面日後遍歷的時候要考慮到刪除了元素時後面的元素的下標都會前移一個位置。
在List中刪除元素的方法:
刪除大於等於5的數字:學習
//測試數據 List<Integer> list = new ArrayList<Integer>(); for(int i=0;i<10;i++) { list.add(i); }
//方法一 for(int i=0;i<list.size();i++) { if(list.get(i)>=5) { list.remove(list.get(i)); i--; } } System.out.println(list);
運行結果:
測試
//方法二 for(int i=list.size()-1;i>=0;i--) if(list.get(i)>=5) list.remove(list.get(i)); System.out.println(list);
運行結果:
設計
新建Map<String,Integer>對象map來存放單詞及其出現次數 WHILE 取得的單詞不爲"!!!!!" IF 當前單詞不存在map中 將單詞添加到map中,設置value值爲1 ELSE 將map中該單詞的value值加1 新建List對象list,其中存放map 實現Comparator接口對其中數據進行排序 輸出排序後數據
這題要實現題目規定的排序要使用ArrayList實現Comparator接口來實現排序,還要用到Map.Entry這個內部接口來遍歷元素。3d
本題較難,作不出來沒關係。但必定要有本身的思考過程,要有提交結果。code
建立Map(String,ArrayList<Integer>)對象map存放單詞及其出現行數 建立ArrayList對象line存放每一行句子 WHILE 取得的單詞不爲"!!!!!" IF 當前單詞不存在map中 添加單詞到map中,並將當前行數添加進value ELSE 判斷這個單詞是否已經在該行出現 若沒有出現,則添加該行進map的value 使用Iterator迭代器遍歷map並輸出 以空格爲間隔輸入若干個單詞 判斷單詞是否都存在map的同一行中 若存在則輸出行數及對應句子
實驗總結:首先將建立ArrayList對象line存放每一行句子取得的單詞不爲"!!!!!", 添加單詞到map中而後當前行數添加進value。再判斷這個單詞是否是已經在該行裏出現,若是沒有出現該行進map的value,使用Iterator迭代器遍歷map而後輸出 。
這個題挺難的都不怎麼懂都是找同窗交個人,雖然題是作出來的可是還沒理解清楚。對象
編寫一個Student類,屬性爲:
private Long id; private String name; private int age; private Gender gender;//枚舉類型 private boolean joinsACM; //是否參加過ACM比賽
建立一集合對象,如List
測試數據:
List<Student> student = new ArrayList<Student>(); student.add(new Student(1L,"wang",15,Gender.man,false)); student.add( new Student(8L,"zhao",16,Gender.woman,true)); student.add( new Student(87L,"liao",17,Gender.man,false)); student.add ( new Student(100L,"xu",18,Gender.woman,false)); student.add( new Student(67L,"liao",19,Gender.man,true)); student.add( new Student(90L,"liao",20,Gender.man,true)); student.add( new Student(177L,"liao",21,Gender.man,true));
//search方法定義 static List<Student> search(List<Student> list,Long id, String name, int age, Gender gender, boolean joinsACM){ List<Student> student = new ArrayList<Student>(); for(Student e:list){ if(e.getId()>id&&e.getName().equals(name)&&e.getGender()==gender&&e.isJoinsACM()==joinsACM){ student.add(e); } } return student; }
運行結果:
排序
List<Student> newStudent = student.stream().filter(e -> e!=null&&e.getId()>50&&e.getName().equals("liao")&&e.getAge()>18&&e.getGender()==Gender.man&&e.isJoinsACM()==true).collect(Collectors.toList());
運行結果:
索引
題集jmu-Java-05-集合之GeneralStack
interface GeneralStack<T>{ T push(T item); T pop(); T peek(); public boolean empty(); public int size(); }
使用泛型可使咱們不止實現可以存放Integer類型的棧,還能實現存放Double、String的棧,而不用再去重寫寫接口。
題目集:jmu-Java-05-集合
在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
須要有兩張圖(1. 排名圖。2.PTA提交列表圖)
須要將每週的代碼統計狀況融合到一張表中。
本身的目標能實現嗎?
還需努力
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 125 | 125 | 2 | 2 |
4 | 141 | 141 | 3 | 3 |
5 | 674 | 647 | 13 | 13 |
6 | 647 | 647 | 13 | 13 |
7 | 695 | 48 | 14 | 1 |
8 | 1867 | 1867 | 25 | 25 |
9 | 1974 | 107 | 29 | 4 |
10 | 2227 | 253 | 34 | 5 |
嘗試從如下幾個維度評估本身對Java的理解程度
維度 | 程度 |
---|---|
語法 | PTA的題目還得多學習, |
面向對象設計能力 | 都是問同窗百度學習在努力中 |
應用能力 | 可使用Java編寫一些實用的小工 |
至今爲止代碼行數 | 2227 |