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

        ?

        強大的Collection集合框架

        2017-05-04 18:26:00陳浩鑫劉艷華張桂娟
        藝術(shù)科技 2016年12期
        關(guān)鍵詞:集合

        陳浩鑫+劉艷華+張桂娟

        摘 要:Java,是由Sun公司于1995年推出的編程語言。在Java語言中,不管是大編程項目也好,小編程項目也好,為了達到方便的目的,我們都要用到集合框架。集合框架是為表示和操作集合而規(guī)定的一種統(tǒng)一的標準的體系結(jié)構(gòu)。任何集合框架都包含三大塊內(nèi)容:對外的接口、接口的實現(xiàn)和對集合運算的算法。

        關(guān)鍵詞:集合框架;集合;Collection

        在Java中,Collection集合接口是Collection層次結(jié)構(gòu)中的根接口。Collection表示一組對象,這些對象也稱為collection的元素。一些Collection是有序、允許有重復(fù)元素的,而另一些則是無序的、不允許有重復(fù)元素的。由于JDK不提供此接口的任何直接實現(xiàn),因此它提供更具體的子接口來進行集合的實現(xiàn),如Set和List。此接口通常用來傳遞Collection,并在需要最大普遍性的地方操作這些Collection。所有通用的Collection實現(xiàn)類(通常通過它的一個子接口間接實現(xiàn)Collection)應(yīng)該提供兩個“標準”構(gòu)造方法:一個是無參構(gòu)造方法,用于創(chuàng)建空collection;另一個是帶有Collection類型單參數(shù)的構(gòu)造方法,用于創(chuàng)建一個具有與其參數(shù)相同元素新的Collection。

        如果仔細劃分的話,Collection接口下的兩個子接口list和set又具有幾個我們經(jīng)常使用的具體實現(xiàn)類。在list接口下有底層是鏈表結(jié)構(gòu)的LinkedList,有底層是數(shù)組的ArrayList、Vector,為什么底層是數(shù)組的會有兩個?因為他們其在功能上大體沒有區(qū)別。但ArrayList是線程不安全的,而vector是線程的安全的,當然了,在Java中,線程安全就代表著程序的完整度高一些,運行速度慢一些,所以基于數(shù)組的list集合我們一般采用ArrayList集合。而在Set中,我們又有基于Hash算法的HashSet和基于二叉樹算法的TreeSet。在Map集合中,我們一般常用到的就是HashMap集合。今天,我們重點介紹Collection集合。

        在集合框架中,我們要如何遍歷Collection中的每一個元素?不論Collection的實際類型如何,它都支持一個iterator()的方法,該方法返回一個迭代子,使用該迭代子即可逐一訪問Collection中每一個元素。典型的用法如下:

        Iterator it=collection.iterator();//獲得一個迭代元素

        while(it.hasNext()) {

        Object obj=it.next();//得到下一個元素

        }

        下面,筆者將就以上幾個集合作為分類為大家簡略地介紹一下集合。

        List接口:

        List是有序的,允許重復(fù)的Colllection集合的子接口,除了具有Collection接口必備的iterator()方法外,List接口還可以使用Collections類中對集合操作的一些方法,如add(int index,Element)將指定的元素插入此列表中的指定位置。

        remove(int index)移除此列表中指定位置上的元素等方法。

        實現(xiàn)List接口的常用類有LinkedList、ArrayList。

        LinkedList類:

        LinkedList類實現(xiàn)了List接口,允許集合中存在null。此外,LinkedList還具有獨特的get()、set()等方法,這些獨特的操作方法使LinkedList可被用作或看作一個環(huán)狀的鏈表,我們一般將其稱為雙向循環(huán)鏈表。

        但值得我們注意LinkedList的是,其沒有同步方法,如果多個線程同時訪問一個List,則必須自己實現(xiàn)訪問同步。一種解決方法是在創(chuàng)建List時構(gòu)造一個同步的List并且將其上鎖,保證數(shù)據(jù)的安全性:

        List list=Collections.synchronizedList(new LinkedList(...));

        ArrayList類:

        ArrayList的底層由數(shù)組完成,因此它具有數(shù)組的一些特性,即增刪慢、查詢快。每個ArrayList實例都有一個容量,即用于存儲元素的數(shù)組大小。這個容量可隨著不斷添加新元素而增加,而在這方面,數(shù)組就沒有集合具有優(yōu)勢,數(shù)組的擴容需要代碼完成,集合是隨著數(shù)據(jù)的插入而自動擴容,隨著數(shù)據(jù)的消失而自動消失。

        Set接口:

        與List不同的是,在Set中的對象元素不能重復(fù),也就是說,你不能把同樣的東西兩次放入同一個Set容器中。它的常用具體實現(xiàn)有HashSet和TreeSet類。HashSet能快速定位一個元素,但是你放到HashSet中的對象需要實現(xiàn)hashCode()方法,它使用了數(shù)據(jù)庫中的哈希算法。而TreeSet則將放入其中的元素按序存放,這就要求你放入其中的對象是可排序的,這就用到了集合框架提供的另外兩個實用類Comparable和Comparator。一個類是可排序的,當實現(xiàn)Comparable接口時要重寫接口中的Compareto方法,要么實現(xiàn)Comparator接口,如果多個類具有相同的排序算法,那就不需要在每分別重復(fù)定義相同的排序算法,只要實現(xiàn)Comparator接口即可。集合框架中還有兩個很實用的公用類:Collections和Arrays。Collections提供了對一個Collection容器進行諸如排序、復(fù)制、查找和填充等一些非常有用的方法,以供Set集合的使用。

        參考文獻:

        [1] Stuart Reges(美),Marty Stepp . Java程序設(shè)計教程大學[D].陳志,譯.機械工業(yè)出版社,2009.

        [2] Y.Daniel Liang(美) . Java語言程序設(shè)計[M].機械工業(yè)出版社,2008.

        [3] Cay S(美) . Horstmann Gary Cornell . Java核心技術(shù)[M].人民郵電出版社,2013.

        猜你喜歡
        集合
        化抽象為具體,優(yōu)化“集合”教學
        從集合到思維的局部性
        魅力中國(2017年2期)2017-05-13 09:09:53
        中學生物學(2017年3期)2017-04-11 17:37:44
        論“子集、全集、補集”
        與學生的一次雙贏探究
        論五聲性集合4—23對作品的多層次控制形態(tài)
        論述高中數(shù)學中集合的類型及基本運算
        青年時代(2016年30期)2017-01-20 02:04:06
        一道數(shù)學填空題引發(fā)對細節(jié)的思考
        考試周刊(2016年50期)2016-07-12 17:04:11
        解讀《集合》
        考試周刊(2016年26期)2016-05-26 20:26:20
        三年級數(shù)學《集合》教學設(shè)計
        教師·上(2016年4期)2016-05-06 14:04:55
        成人激情五月天| 护士人妻hd中文字幕| 天天躁夜夜躁狠狠是什么心态| 六月婷婷久香在线视频| 亚洲AV秘 无码一区二p区三区 | 国产丝袜长腿在线看片网站| 大地资源网在线观看免费官网| 久久午夜夜伦鲁鲁片免费无码| 免费jjzz在线播放国产| 午夜日本理论片最新片| 男女男精品视频网站免费看| 精品少妇爆乳无码av无码专区| 亚洲AV永久青草无码性色av| 精品少妇一区二区三区四区| 日本道色综合久久影院| 亚洲欧美在线观看| 青青草综合在线观看视频| av一区二区在线免费观看| 在办公室被c到呻吟的动态图| 亚洲最大中文字幕无码网站 | 欧美丰满熟妇bbbbbb百度| 蜜臀av中文人妻系列| 日本中文一区二区在线| 激情第一区仑乱| 国产亚洲欧美精品一区| 国产影片免费一级内射| 风流老太婆大bbwbbwhd视频| 国产欧美一区二区精品性色| 国产精品一区二区午夜久久| 丰满人妻中文字幕一区三区| 天天鲁在视频在线观看| 亚洲AV综合久久九九| 亚洲精品久久麻豆蜜桃| 亚州国产av一区二区三区伊在| 久久国产色av| 久久伊人网久久伊人网| 亚洲一区二区三区中国| 亚洲日韩中文字幕一区| 制服丝袜人妻中出第一页| 日韩精品视频在线观看无| 亚洲熟女一区二区三区|