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