大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 編程基礎入門,Java中collection接口

編程基礎入門,Java中collection接口

更新時間:2020-08-03 14:58:05 來源:動力節(jié)點 瀏覽2135次

Collection

Collection在Java的基礎中是非常重要的部分,它占了一整個章節(jié),而Collection主要的內容如下圖:

編程基礎入門,Java中collection接口

本文將介紹幾個比較重要而且常用的接口類型或者類。

List、ArrayList、LinkedList

首先要講的是List、ArrayList、LinkedList。大體上List這一類的Class,跟Array很類似,List上跟Array不同的是,Array需要提前知道長度,而List是不需要的。

而List是一個接口「Interface」,而ArrayList與LinkedList是其實現類「Class」。所以通常聲明時這樣寫:

List<String>list=new ArrayList<String>();

ArrayList與LinkedList的差別

ArrayList與LinkedList都是List接口的實現類,所以List有的功能,ArrayList與LinkedList全都實現了;而這二個List的差別在于,尋找下一節(jié)點的位置與切換下一個節(jié)點的位置。

假設現在有三個Object在heap中,利用ArrayList與LinkedList分別來儲存,如下圖所示:

編程基礎入門,Java中collection接口

此時因為ArrayList是照順序儲存的,所以在取得特定的index元素時,非常方便快速,而LinkedList在取得特定的index元素,因為要一個一個去取,所以會比較慢。

假設今天要插入第四個Object A,而且要接續(xù)在Object 1之后,所以會變成:

編程基礎入門,Java中collection接口

我們可以看到ArrayList的Object 2與Object 3都被移位了,而LinkedList則是修改Object 1的指向,再由Object A的指向Object 2,所以修改了二個指向,就像指針一樣非常高效,如果List內的數量很多,ArrayList會影響到被插入的index后的每一個,而LinkedList只會影響到二個。

結論

編程基礎入門,Java中collection接口

Set、HashSet、TreeSet

Set與List其實是很類似的東西,不過它們之間最大的區(qū)別在于,Set的元素不可以重復,不過List可以。

下圖是一List與Set的示例代碼:

編程基礎入門,Java中collection接口

因為Set具有不能重復的特性,而判斷重復的標準是根據Object的equals()來判斷;另外Set的內容因為不能重復,所以會有排序的問題,如果要考慮排序問題:

使用者自定義排序→TreeSet

快速取出→HashSet

TreeSet默認為ASCII的方式排序,不過使用者也可以讓類實現java.lang.Comparable,自定義排序規(guī)則;而HashSet則是根據Object的hash()獲取的值來決定先后順序。

*注意:List在取出時是有順序的,但是Set在取出時,是會根據排序后的順序,請注意,下圖是示例代碼:

編程基礎入門,Java中collection接口

Stack(先進后出)與Queue(先進先出)

Stack與List是很類似的東西,都是將一堆元素塞進去里面后,再慢慢取出來;不過它們有Stack與Queue有它們自己的特性,Stack是先進后出(LIFO),而Queue是先進先出(FIFO),我們直接來看示例代碼:

下圖是Stack的示例:

編程基礎入門,Java中collection接口

下圖是Queue的示例:

編程基礎入門,Java中collection接口

Stack與Queue的peek()方法

Stack與Queue都是在取出元素后,就將該元素從Stack或Queue中移除了,所以為了應對更多的情況,所以在Stack或Queue中都有提供對應的方法peek(),這個方法取出來的元素與Stack的pop()與Queue的poll()是相同的,不過它不會將元素從Stack或Queue中移除,使用更加靈活。

Map、HashMap、TreeMap

Map是一種方便使用者儲放key、Value的一種集合,而且它也很接近Set與List的集合體,存儲key時使用Set,存儲Value時使用List。

Map的Key是使用Set的方式存儲的,所以Key是不能重復的,而Value是用List的方式存儲,所以Value是可以重復的。

而Map中的Key因為使用Set的方式存儲,所以跟Set一樣,Set有HashSet、TreeSet,而Map則有HashMap與TreeMap,主要都是針對Key的部分。

Java中Collection集合概述:http://www.dabaquan.cn/tutorial_java_advance/633.html

以上就是動力節(jié)點java培訓機構的小編針對“編程基礎入門,Java中collection接口”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一区二区三区 日韩 | 手机看高清特黄a大片 | riav久久中文一区二区 | 免费一级毛片在级播放 | 中文字幕日韩精品亚洲七区 | 久久欧美精品欧美九久欧美 | 乱人伦精品一区二区 | 婷婷 综合网站 | 亚洲精品国产自在久久出水 | 99热视热频这里只有精品 | 欧美一级在线免费观看 | a视频在线播放 | 大杳蕉伊人狼人久久一本线 | 男女乱淫真视频免费一级毛片 | 日本精高清区一 | 成人午夜视频在线 | 欧美综合视频在线观看 | avav在线精品 | 亚洲精品久久精品h成人 | 亚洲综合区小说区激情区噜噜 | 国产成人精品三级91在线影院 | 欧美日韩久久毛片 | 中国一级毛片 | 国产成人亚洲综合91精品555 | 九九热这里只有国产精品 | 亚洲欧美成人永久第一网站 | 欧美成人免费高清网站 | 国产三级久久 | 在线国产一区二区三区 | 夜夜艹日日干 | 日韩欧美亚洲每日更新网 | 无毒不卡在线播放 | 99国产精品高清一区二区二区 | 久热精品男人的天堂在线视频 | 日韩欧美影视 | 色综合天天综合网国产成人 | 久久免费精品一区二区 | 免费a级特黄国产大片 | 两性色午夜视频免费老司机 | 欧美xx毛片免费看 | 日韩国产欧美一区二区三区 |