20165320 第十周课上测试补做
相關知識點總結:
1.LinkedList泛型類創建一個鏈表對象
LinkedList<String> mylist = new LinkedList<String>();2.向鏈表中依次添加結點
mylist.add();3.鏈表的遍歷
LinkedList類中的get(int index)方法將返回當前鏈表中第index個結點中的對象鏈表對象可以使用iterator()方法獲取一個Iterator對象,該對象是針對當前鏈表的迭代器。4.排序與查找
public static sort(List<E>list)該方法可將list中的元素按升序排列int binarySearch(List<T>list,T key,CompareTo<T> c)使用折半查找list是否含有和參數key相等的元素還可以通過Comparable接口規定對象的大小比較鏈表相關的概念
單鏈表:每個結點含有一個數據和下一個結點的引用
雙鏈表:每個結點含有一個數據和下一個結點的引用以及上一個結點的引用
Collections類可以通過調用sort方法來進行排序
課上內容補做截圖:
一、
- 在數據結構和算法中,排序是很重要的操作,要讓一個類可以進行排序,有兩種方法:
- 有類的源代碼,針對某一成員變量排序,讓類實現Comparable接口,調用Collection.sort(List)
- 沒有類的源代碼,或者多種排序,新建一個類,實現Comparator接口 調用Collection.sort(List, Compatator)
運行截圖:
二、補充MyList.java的內容,提交運行結果截圖(全屏)
錯因:一開始實用鏈表的Linked相關方法進行操作,之后才發現需要運用Node進行結點的相關操作
運行截圖:
書上代碼分析:
15.1:聲明一個泛型類Cone,計算體積的時候只關心它的底能否計算面積,和底的具體形狀沒有關系,所以求體積時用泛型做底,而且泛型變量只能調用從object類繼承或重寫的方法,例子中的底面積需要用tostring()方法。
15.2:該例子是為了比較get(int index)方法與iterator()方法遍歷鏈表所需要的時間。因為LinkedList的存儲結構不是順序結構,所以鏈表調用get(int index)方法所要的時間長,所以需要用迭代器。
15.3:這個例子是使用老版本JDK的LinkedList,創建一個新鏈表,添加元素進行遍歷,一個是使用get index,一個是使用迭代器。
15.4:例子4是通過Comparable接口規定的大小關系來進行對鏈表的排序,最后再用Collections類調用sort方法排序。該程序中在 compareTo方法里返回的是height的大小比較,所以鏈表中的對象是按照height的大小來決定對象之間的大小關系。
15.5:該例子就是使用了Collections類中的洗牌算法還有旋轉算法對鏈表進行洗牌還有旋轉,再分別將它們遍歷輸出看變化。
15.6:該例子是使用堆棧輸出一個遞歸序列,算法是后一項等于前兩項的和,也就是Fibonacci數列。 重要的操作就是
壓棧和彈棧: push 壓棧pop 彈棧15.7:該例子是一個英語單詞查詢的GUI程序,用戶在界面的一個文本框中輸入一個英文單詞,另一個文本框顯示單詞的翻譯
15.8:該例子首先是創建了一個樹集,在樹集里面增添了四個元素,而樹集和鏈表不一樣,添加的時候它就按照對象的大小進行添加的。
90 趙一66 錢二86 孫三76 李四15.9:該例子是使用TreeMap分別按學生的英語成績和數學成績排序結點,不僅存儲了數據,還存儲了與其相關聯的關鍵字(即數學和英語)。
15.10:該例子實現了自動裝箱與自動拆箱的功能。
程序允許把一個基本數據類型添加到類似鏈表等數據結構中,系統會自動完成基本類型到相應對象的轉換,獲取時系統自動完成對象到基本類型的轉換。書上編程題目:
1.使用堆棧結構輸出an的若干項,其中an=2an-2,a1=3,a2=8。
解法:按照15.7的例題修改棧一開始的兩個元素,再修改temp的計算方法就行
2.編寫一個程序,將鏈表中的學生英語成績單存放到一個樹集中,使得按成績自動排序,并輸出排序結果。
解法:按照15.8的例題,用兩個迭代器,一個鏈表的,一個是樹集的,分別將鏈表中的Student對象添加到樹集中,再通過樹集的迭代器挨個打印出來
3.有10個U盤,有兩個重要屬性:價格和容量。編寫一個應用程序,使用TreeMap<K,V>類,分別按照價格和容量排序輸出10個U盤的詳細信息。
解法:按照15.9的例題,將英語和數學修改成U盤的容量和價格就行了
轉載于:https://www.cnblogs.com/Gst-Paul/p/9000102.html
總結
以上是生活随笔為你收集整理的20165320 第十周课上测试补做的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud 微服务入门(二
- 下一篇: 转:我是如何向老婆解释MapReduce