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