亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于數(shù)據(jù)結(jié)構(gòu)與簡化內(nèi)存模型的Java集合教學(xué)方法研究

        2018-06-01 06:47:35胡建華
        計(jì)算機(jī)教育 2018年5期
        關(guān)鍵詞:鏈表數(shù)據(jù)結(jié)構(gòu)內(nèi)存

        胡建華,鄢 旭

        (1.浙江農(nóng)林大學(xué)暨陽學(xué)院 工程技術(shù)系,浙江 諸暨 311800;2.江西旅游商貿(mào)職業(yè)學(xué)院 現(xiàn)代教育技術(shù)中心,江西 南昌 330000)

        0 引 言

        Java語言課程中,集合框架是學(xué)生反映較難掌握的內(nèi)容之一。該部分提供了很多接口與類,List、ArrayList、LinkedList、HashMap、TreeMap 等,如這些類的區(qū)別在哪里,在什么情況下使用,這些問題時(shí)常困擾著學(xué)生。筆者發(fā)現(xiàn)很少有教材從理論的高度對(duì)Java集合框架進(jìn)行清晰闡述,絕大部分教材只是羅列每個(gè)類的屬性與方法,沒有解釋每個(gè)類的區(qū)別及應(yīng)用場(chǎng)景;少數(shù)教材簡單說明ArrayList、LinkedList的實(shí)現(xiàn)方法不同,但不夠全面,也沒有說明一個(gè)集合對(duì)象保存的并不是元素的內(nèi)容,而只是元素對(duì)象的引用(可以理解為地址)。在多年的Java語言課程教學(xué)中,筆者發(fā)現(xiàn)從數(shù)據(jù)結(jié)構(gòu)理論角度介紹Java集合框架組成,以JVM簡化內(nèi)存模型描述集合對(duì)象的實(shí)現(xiàn),能幫助學(xué)生輕松理解Java集合框架,并靈活應(yīng)用,取得了較好的教學(xué)效果。

        1 Java的集合框架就是數(shù)據(jù)結(jié)構(gòu)課程中集合的抽象

        要從數(shù)據(jù)結(jié)構(gòu)理論的角度理解Java集合框架,第一步是回顧數(shù)據(jù)結(jié)構(gòu)課程的內(nèi)容。數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算問題中數(shù)據(jù)的組織、存儲(chǔ)及操作的學(xué)科。所謂非數(shù)值計(jì)算問題,指不是一個(gè)公式就能解決的問題,比如排序問題等。首先講解數(shù)據(jù)的組織、存儲(chǔ)及操作,見表1。

        表1 數(shù)據(jù)的組織、存儲(chǔ)及操作

        接著,講解集合、線性結(jié)構(gòu)、線性表、順序表、鏈表的區(qū)別。集合是一批數(shù)據(jù)(可以無序);線性結(jié)構(gòu)把一批數(shù)據(jù)組織起來,除了首元素與尾元素,中間任何一個(gè)元素只有一個(gè)前驅(qū)、一個(gè)后繼。從操作受限的角度看,線性結(jié)構(gòu)可分為線性表、隊(duì)列與棧3種,線性表就是操作不受限的線性結(jié)構(gòu)。從存儲(chǔ)的角度看,順序存儲(chǔ)的線性表叫順序表,鏈?zhǔn)酱鎯?chǔ)的線性表叫鏈表。

        最后,引導(dǎo)學(xué)生分析順序表與鏈表在訪問、插入、刪除一個(gè)元素時(shí)的效率區(qū)別。

        第二步,講解Java的集合框架組成,見圖1。

        明確告訴學(xué)生,Collection接口就是數(shù)據(jù)結(jié)構(gòu)中集合的抽象,該接口提供的方法,就是要完成數(shù)據(jù)結(jié)構(gòu)中集合的常用算法,諸如建立集合、插入元素、刪除元素、集合的交叉并補(bǔ)運(yùn)算等。針對(duì)不同存儲(chǔ)結(jié)構(gòu)有不同的實(shí)現(xiàn)方式,這些方法都是抽象方法,具體由它的子類實(shí)現(xiàn),因此Collection定義成接口。

        圖1 Java的集合框架組成

        ArrayList類用順序存儲(chǔ)方式實(shí)現(xiàn),ArrayList就是順序表;LinkedList用鏈?zhǔn)酱鎯?chǔ)方式實(shí)現(xiàn),LinkedList就是鏈表;兩者的區(qū)別在于訪問、插入、刪除一個(gè)元素時(shí),效率是不同的。若一個(gè)集合經(jīng)常要插入、刪除元素,則LinkedList效率高。

        Set就是在數(shù)據(jù)結(jié)構(gòu)集合的基礎(chǔ)上加了唯一性要求;當(dāng)Map把鍵—值看做一個(gè)整體時(shí),它就是集合,并提供了項(xiàng)集。

        進(jìn)一步講解,HashSet、HashMap等是無序集合,TreeSet、TreeMap是通過二叉排序法建立的有序集合。

        2 Java集合對(duì)象保存的是集合中每個(gè)元素對(duì)象的引用

        也許受到C語言課程中數(shù)組元素分配內(nèi)存空間的影響,很多學(xué)生認(rèn)為集合中保存了元素對(duì)象本身,因此他們不理解一個(gè)對(duì)象加入兩個(gè)集合等問題。一個(gè)集合中刪除了這個(gè)元素對(duì)象,為什么另一個(gè)集合還能顯示這個(gè)對(duì)象呢?所以,Java教學(xué)中,理解Java的內(nèi)存管理是很重要的。Java實(shí)際的內(nèi)存管理比較復(fù)雜,但可以用簡化的方式描述,既便于學(xué)生理解,又不違背Java內(nèi)存管理原則 ??梢院唵蔚匕褍?nèi)存分為兩部分:類區(qū)與對(duì)象區(qū)。下面用簡化內(nèi)存模型分析一段Java集合代碼。

        list使用類中,main方法的簡化內(nèi)存模型分析見圖2。

        由圖2可見,張三、令狐沖兩個(gè)學(xué)生對(duì)象是獨(dú)立建立在對(duì)象區(qū)的,jsj.add(xs1)只是通過調(diào)用add方法,把張三這個(gè)學(xué)生對(duì)象的地址加入到集合對(duì)象jsj中。jsj中刪除了一個(gè)學(xué)生對(duì)象,只是刪除了對(duì)這個(gè)對(duì)象的引用,這個(gè)對(duì)象本身還在內(nèi)存中。

        圖2 main方法的簡化內(nèi)存模型分析圖

        3 結(jié) 語

        通過與數(shù)據(jù)結(jié)構(gòu)知識(shí)相結(jié)合,可以用簡化內(nèi)存模型分析集合代碼,幫助學(xué)生輕松掌握J(rèn)ava集合框架的本質(zhì),而不會(huì)迷惘于成堆的接口和類中。學(xué)院2015級(jí)學(xué)生按此方法教學(xué),該門課程平均成績達(dá)到85分,而前一屆學(xué)生未采用這種講課方法,同樣試卷考試,課程平均成績只有70分。由此可見,采用本文這種類比式教學(xué)方法后,教學(xué)效果提高顯著。

        [1] 董東. 數(shù)據(jù)結(jié)構(gòu)與Java面向?qū)ο蟪绦蛟O(shè)計(jì)課程之間的有效銜接[J]. 計(jì)算機(jī)教育, 2015(15): 82-84.

        [2] 宋晏. 基于知識(shí)邏輯結(jié)構(gòu)與思維形式注記教學(xué)論的Java教學(xué)設(shè)計(jì)[J]. 工業(yè)和信息化教育, 2014(5): 68-74.

        猜你喜歡
        鏈表數(shù)據(jù)結(jié)構(gòu)內(nèi)存
        基于二進(jìn)制鏈表的粗糙集屬性約簡
        “春夏秋冬”的內(nèi)存
        跟麥咭學(xué)編程
        基于鏈表多分支路徑樹的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
        “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
        鏈表方式集中器抄表的設(shè)計(jì)
        TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
        《數(shù)據(jù)結(jié)構(gòu)》教學(xué)方法創(chuàng)新探討
        河南科技(2014年5期)2014-02-27 14:08:57
        基于內(nèi)存的地理信息訪問技術(shù)
        日韩精品一区二区三区四区五区六 | √天堂中文官网8在线| 日本a在线免费观看| 亚洲视频在线观看青青草| 久久伊人精品中文字幕有 | 国产精品久久久亚洲| 国产麻豆精品一区| 91短视频在线观看免费| 日本五十路熟女在线视频| 亚洲精品一区二区成人精品网站| 夜夜爽夜夜叫夜夜高潮| 亚洲av午夜福利精品一区二区 | 国产一区二区免费在线观看视频 | 麻豆国产在线精品国偷产拍| 老熟妇高潮喷了╳╳╳| 日日躁欧美老妇| 伊人五月亚洲综合在线| 国语自产视频在线| 亚洲欧美一区二区三区在线| 天天躁日日操狠狠操欧美老妇| 少妇极品熟妇人妻高清| 日韩免费精品在线观看| 亚洲情综合五月天| 国产精品视频二区不卡| 午夜无码无遮挡在线视频| 亚洲韩日av中文字幕| 亚洲国产精品无码aaa片| 欧美艳星nikki激情办公室| 精品国产亚欧无码久久久| 国产精品亚洲最新地址| 视频在线观看一区二区三区| 99热这里有精品| 久久国产品野战| 视频一区视频二区亚洲| 国产精品国产三级第一集| 国产成本人片无码免费2020| 连续高潮喷水无码| 国产精品午夜福利天堂| 国产精品国产三级国产av中文| 欧美精品v国产精品v日韩精品| 久久频精品99香蕉国产|