日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

201421123042 《Java程序设计》第8周学习总结

發布時間:2023/12/13 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201421123042 《Java程序设计》第8周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 本周學習總結

以你喜歡的方式(思維導圖或其他)歸納總結集合相關內容。

2. 書面作業

1. ArrayList代碼分析

1.1 解釋ArrayList的contains源代碼

源代碼:


答:查找對象是否再數組中,并且返回在數組中的下標。如果不在數組中的話返回-1

1.2 解釋E remove(int index)源代碼

答:刪除index下標的元素,這個程序也進行了下標的檢查。檢查下標是否越界。

1.3 結合1.1與1.2,回答ArrayList存儲數據時需要考慮元素的具體類型嗎?

答:不需要考慮元素的類型。因為ArrayList的數組類型是Object類型,所以所有類型都可以。

1.4 分析add源代碼,回答當內部數組容量不夠時,怎么辦?

源代碼:

答:如果內部數組容量不夠,調用grow方法生成一個容量大小為原來1.5倍的數組,然后再把舊的數組里的內容拷貝的新的數組里。

1.5 分析private void rangeCheck(int index)源代碼,為什么該方法應該聲明為private而不聲明為public?

答:是程序內部自動檢查的方法,外部不需要對其進行操作,所以不需要聲明為public。

2. HashSet原理

2.1 將元素加入HashSet(散列集)中,其存儲位置如何確定?需要調用那些方法?

計算元素的哈希碼,即調用對象的hashCode方法。
根據哈希碼查找到對應的桶。
如果桶中已有其他的元素,則用調用equals方法與已有的元素進行比較。
如果比較結果為假,則將該元素插入桶中,如果比較結果為真,則用新的值替換舊的值。
方法:有hashCode方法和equals方法

2.2 將元素加入HashSet中的時間復雜度是多少?是O(n)嗎?(n為HashSet中已有元素個數)

答:是O(1),不是O(n)。

3. ArrayListIntegerStack

題集jmu-Java-05-集合之ArrayListIntegerStack

3.1 比較自己寫的ArrayListIntegerStack與自己在題集jmu-Java-04-面向對象2-進階-多態、接口與內部類中的題目自定義接口ArrayIntegerStack,有什么不同?(不要出現大段代碼)



答:由類名就可以看出,兩種方法的內部存儲方式不同,ArrayListIntegerStack使用動態數組來存儲數據。ArrayIntegerStack則是使用普通數組來存儲數據,使用ArrayListIntegerStack存儲數據時,出入棧可以直接用ArrayList中已有的方法進行操作,而ArrayInteger在出入棧時要定義一個棧頂指針top,通過指針的移動來實現棧方法。

3.2 結合該題簡單描述接口的好處,需以3.1為例詳細說明,不可泛泛而談。

答:接口的好處是相同方法,不同實現。就像ArrayListIntegerStack與ArrayIntegerStack,根據需求,通過不同的方式去實現同樣的目標

4. Stack and Queue

4.1 編寫函數判斷一個給定字符串是否是回文,一定要使用棧(請利用Java集合中已有的類),但不能使用java的Stack類(具體原因自己搜索)與數組。請粘貼你的代碼,類名為Main你的學號。

package week7; import java.util.*;interface IntegerStack1{public void push(Character item);public void pop(); public Character peek(); public boolean empty(); public int size(); }class Stack implements IntegerStack1{List<Character> stack = new LinkedList<Character>();@Overridepublic void push(Character item) {stack.add(item);}@Overridepublic void pop() {stack.remove(stack.size()-1);}@Overridepublic Character peek() {return stack.get(stack.size()-1);}@Overridepublic boolean empty() {return stack.isEmpty();}@Overridepublic int size() {return stack.size();}}public class Main201421123042 {public static void main(String[] args) {Scanner sc = new Scanner(System.in );Stack stack = new Stack();boolean flag = true;String str = sc.next();char[] ch = str.toCharArray();for(char e:ch){stack.push(e);}for(int i=0;i<stack.size();i++){if(ch[i]!=stack.peek()){flag=false;break;}stack.pop();}System.out.println(flag);sc.close();}}

4.2 題集jmu-Java-05-集合之銀行業務隊列簡單模擬(只粘貼關鍵代碼)。請務必使用Queue接口,并說明你使用了Queue接口的哪一個實現類?


答:使用了Queue接口的LinkedList實現類。

5. 統計文字中的單詞數量并按單詞的字母順序排序后輸出

題集jmu-Java-05-集合之5-2 統計文字中的單詞數量并按單詞的字母順序排序后輸出 (作業中不要出現大段代碼)

5.1 實驗總結

set集合的對象是不重復的,使用TreeSet,會默認幫我們排好序。

3.碼云及PTA

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

3.1. 碼云代碼提交記錄

在碼云的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然后搜索并截圖

3.2 截圖PTA題集完成情況圖

需要有兩張圖(1. 排名圖。2.PTA提交列表圖)
1,

2,

3.3 統計本周完成的代碼量

需要將每周的代碼統計情況融合到一張表中。

周次總代碼量新增代碼量總文件數新增文件數
10000
20000
30000
40000
50000
66476471313
769548141
8186711722511
91974107294

轉載于:https://www.cnblogs.com/liao1531870282/p/7800699.html

總結

以上是生活随笔為你收集整理的201421123042 《Java程序设计》第8周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。