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

1. 本周學習總結

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

2. 書面作業

1. ArrayList代碼分析

1.1 解釋ArrayList的contains源代碼

源代碼:
1121513-20171115202512421-1131552558.png
1121513-20171115202150812-954828787.png
答:查找對象是否再數組中,并且返回在數組中的下標。如果不在數組中的話返回-1

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

1121513-20171109202011559-289744191.png

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

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

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

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

源代碼:
1121513-20171109202147466-130356494.png

答:如果內部數組容量不夠,調用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,有什么不同?(不要出現大段代碼)

1121513-20171109211632669-210909413.png
1121513-20171109211943325-1146380647.png
答:由類名就可以看出,兩種方法的內部存儲方式不同,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();}}

1121513-20171109215151778-1917723005.png

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

1121513-20171110201712091-1472499792.png
答:使用了Queue接口的LinkedList實現類。

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

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

5.1 實驗總結

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

3.碼云及PTA

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

3.1. 碼云代碼提交記錄

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

3.2 截圖PTA題集完成情況圖

需要有兩張圖(1. 排名圖。2.PTA提交列表圖)
1,
1121513-20171110123306794-555820138.png
2,
1121513-20171110123401950-879569741.png

3.3 統計本周完成的代碼量

需要將每周的代碼統計情況融合到一張表中。
1121513-20171109223630778-687376850.png

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252926.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252926.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux驅動靜態編譯和動態編譯方法詳解

內核源碼樹的目錄下都有兩個文檔Kconfig和Makefile。分布到各目錄的Kconfig構成了一個分布式的內核配置數據庫&#xff0c;每個Kconfig分別描述了所屬目錄源文檔相關的內核配置菜單。在內核配置make menuconfig時&#xff0c;從Kconfig中讀出菜單&#xff0c;用戶選擇后保存到.…

Linux學習-11月12日(Apache安裝)

2019獨角獸企業重金招聘Python工程師標準>>> 11.6 MariaDB安裝 11.7/11.8/11.9 Apache安裝 擴展 apache dso https://yq.aliyun.com/articles/6298 apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html apache工作模式 https://blog.csdn.…

11. sql DDL

SQL分為5大類&#xff1a; DDL:數據定義語言 DCL:數據控制語言 DML:數據操縱語言 DTL:數據事務語言 DQL:數據查詢語言 1、DDL(data definition language):create,drop,alter,rename to 數據類型 ①、數字類型&#xff0c;可以數學運算 number&#xff08;4&#xff09;代表整數…

[bzoj2243][SDOI2011]染色

來自FallDream 的博客&#xff0c;未經允許&#xff0c;請勿轉載&#xff0c;謝謝qaq 給定一棵有n個節點的無根樹和m個操作&#xff0c;操作有2類&#xff1a; 1、將節點a到節點b路徑上所有點都染成顏色c&#xff1b; 2、詢問節點a到節點b路徑上的顏色段數量&#xff08;連續相…

Linux學習筆記——例說makefile 增加宏定義

從學習C語言開始就慢慢開始接觸makefile&#xff0c;查閱了很多的makefile的資料但總感覺沒有真正掌握makefile&#xff0c;如果自己動手寫一個makefile總覺得非常吃力。所以特意借助博客總結makefile的相關知識&#xff0c;通過例子說明makefile的具體用法。 例說makefile…

Android基本組件是什么?

1、ImageView繼承View組件,不單單用于顯示圖片,用 XML代碼 編寫的Drawable也可以顯示出來。其中的XML屬性 android:scaleType(設置圖片如何縮放或移動以適應ImageView的大小) 有很多的屬性值,如:matrix(使用矩形方式進行縮放)fitXY(對圖片橫向縱向縮放)center(圖片放在ImageVie…

Java 運算符及優先級

運算符 分割符&#xff1a;  ,  ;  []  ()算數運算符&#xff1a;    -  *  /  %    --關系運算符&#xff1a;  >  <  >  <    !邏輯運算符&#xff1a;  !  &  |  ^  &&  ||賦值運算符&#xff1a; …

array sort - 2 : quick sort

遞歸實現&#xff1a; #include <stdio.h>int arr[10] {3, 2, 4, 1, 9, 7, 5, 6, 0, 8};void print_array(){ int i 0; for (i 0; i < 10; i) printf("arr[%d]:%d ", i, arr[i]); printf("\n");}void swap(int *i, int *j){ …

Linux C 讀取文件夾下所有文件(包括子文件夾)的文件名

本文&#xff1a;http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux C 下面讀取文件夾要用到結構體struct dirent&#xff0c;在頭#include <dirent.h>中&#xff0c;如下&#xff1a; #include <dirent.h> struct dirent {long d_ino; /* inode number 索…

報表工具實現單據套打

【摘要】 單據套打再也不用手動測量&#xff0c;反復調試了&#xff0c;報表工具實現單據套打&#xff0c;去乾學院看個究竟&#xff1a;報表工具實現單據套打!實際項目開發中&#xff0c;很多情況會涉及到單據的打印。即在一張印刷好的空白單據上&#xff0c;準確無誤地打印上…

每隔10秒鐘打印一個“Helloworld”

/*** 每隔10秒鐘打印一個“Helloworld”*/ public class Test03 {public static void main(String[] args) throws InterruptedException {ThreadImp threadImp new ThreadImp();Thread thread1 new Thread(threadImp);thread1.start();} }class ThreadImp extends Thread {p…

C++ STL 優先隊列

//優先隊列//Priority_queue //STL#include<iostream>#include<cstdio>#include<cstdlib>#include<queue>using namespace std;struct cmp{ bool operator() (const int a,const int b) const{//用const定義的a,b是包裹著變量外衣的常數&#xff0c;不…

GDB調試core文件樣例(如何定位Segment fault)

core dump又叫核心轉儲, 當程序運行過程中發生異常, 程序異常退出時, 由操作系統把程序當前的內存狀況存儲在一個core文件中, 叫core dump. (Linux中如果內存越界會收到SIGSEGV信號&#xff0c;然后就會core dump) 在程序運行的過程中&#xff0c;有的時候我們會遇到Segment fa…

管理信息系統的開發與管理

{% extendsmuban.html %} {% block head %}輸入{% endblock %} {% block main %} <div><div class"form-group"><label for"question">標題</label><textarea class"form-control" cols"50" rows"2&q…

python11-28筆記(1.6-1.7)

1.6 多類型傳值和冗余參數多類型傳值&#xff1a;比如def fun(x,y)&#xff0c;定義2個形參定義一個元組t(1,2),如果把元組當做實參傳入到函數中&#xff0c;會報錯 如何將元組當做不同類型的參數傳入到函數中fun(t) 代表傳入的是元組或者這樣調用fun((1,2))注意實參的個數要和…

session機制詳解以及session的相關應用

session是web開發里一個重要的概念&#xff0c;在大多數web應用里session都是被當做現成的東西&#xff0c;拿來就直接用&#xff0c;但是一些復雜的web應用里能拿來用的session已經滿足不了實際的需求&#xff0c;當碰到這樣的情況時候我們需要更加深入的理解session的機制&am…

(轉)Shell中獲取字符串長度的七種方法

Shell中獲取字符串長度的七種方法 原文&#xff1a;http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell腳本中很常用&#xff0c;下面歸納、匯總了求字符串的幾種可能方法: 【方法一】:利用${#str}來獲取字符串的長度 【方法二】:利用awk的length方…

linux下用core和gdb查詢出現段錯誤的地方

有些時候我們在一段C代碼的時候&#xff0c;由于對一個非法內存進行了操作&#xff0c;在程序運行的過程中&#xff0c;出現了"段錯誤"。呵呵&#xff0c;這種問題我想很多人會經常遇到。遇到這種問題是非常無語的&#xff0c;只是提示了"段錯誤"&#xff…

第一篇-Html標簽中head標簽,body標簽中input系列,textarea和select標簽

第十四周課程&#xff08;1-12章節&#xff09; HTML 裸體 CSS 穿華麗衣服 Javascript 動起來 一 HTML &#xff08;20個標簽&#xff09; 1.我們的瀏覽器是socket客戶端 2.一套規則&#xff0c;瀏覽器認識的規則 3.開發者&#xff1a; 學習html規則 開發后臺程序&#xff1a…

opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3

實測 tdm-gcc-5.1.0-3 tdm32-1 32位版本無法正確編譯Opencv 3.2.0 會遇到諸多編譯問題 解決辦法 使用tdm-gcc-5.1.0-2 tdm64-1 64位版本轉載于:https://www.cnblogs.com/fundou/p/6710209.html