久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

java中常用集合類,,接口

 昵稱116853 2009-03-18
 為什么要使用集合類
  當(dāng)你事先不知道要存放數(shù)據(jù)的個(gè)數(shù),,或者你需要一種比數(shù)組下標(biāo)存取機(jī)制更靈活的方法時(shí),你就需要用到集合類,。
  理解集合類
  集合類存放于java.util包中,。
  集合類存放的都是對(duì)象的引用,而非對(duì)象本身,,出于表達(dá)上的便利,,我們稱集合中的對(duì)象就是指集合中對(duì)象的引用(reference)。
  集合類型主要有3種:set(集),、list(列表)和map(映射),。
  其中List和Set接口都繼承自Collection接口,,而Map接口和他倆不同,不是繼承于Collection接口,。
  (1)集 Set
  集(set)是最簡(jiǎn)單的一種集合,,它的對(duì)象不按特定方式排序,只是簡(jiǎn)單的把對(duì)象加入集合中,,就像往口袋里放東西,。
  對(duì)集中成員的訪問(wèn)和操作是通過(guò)集中對(duì)象的引用進(jìn)行的,所以集中不能有重復(fù)對(duì)象,。
  集也有多種變體,,可以實(shí)現(xiàn)排序等功能,如TreeSet,,它把對(duì)象添加到集中的操作將變?yōu)榘凑漳撤N比較規(guī)則將其插入到有序的對(duì)象序列中,。它實(shí)現(xiàn)的是SortedSet接口,也就是加入了對(duì)象比較的方法,。通過(guò)對(duì)集中的對(duì)象迭代,,我們可以得到一個(gè)升序的對(duì)象集合。
  1:HashSet 能夠快速定位一個(gè)元素,,但是它要求存入HasgSet的對(duì)象必須實(shí)現(xiàn)HashCode方法
  2:TreeSet 將放入其中的元素按序存放
  (2)列表 List
  List接口與其實(shí)現(xiàn)類是容量可變的列表,,可以按照索引訪問(wèn)集合中的元素,是有序的集合
  列表在數(shù)據(jù)結(jié)構(gòu)中分別表現(xiàn)為:數(shù)組和向量,、鏈表,、堆棧、隊(duì)列,。
  1:ArrayList: 實(shí)現(xiàn)一個(gè)數(shù)組,,它的規(guī)模可變并且能像鏈表一樣被訪問(wèn),。它提供的功能類似Vector類但不同步,,它是以Array方式實(shí)現(xiàn)的List,允許快速隨機(jī)存取,。
  2:LinkedList: 實(shí)現(xiàn)一個(gè)鏈表,,提供最佳順序存取,適合插入和移除元素,。由這個(gè)類定義的鏈表也可以像?;蜿?duì)列一樣被使用。
  (3)映射 Map
  映射與集或列表有明顯區(qū)別,,映射中每個(gè)項(xiàng)都是成對(duì)的,,Map是把鍵對(duì)象和值對(duì)象進(jìn)行關(guān)聯(lián)的容器。映射中存儲(chǔ)的每個(gè)對(duì)象都有一個(gè)相關(guān)的關(guān)鍵字(Key)對(duì)象,,關(guān)鍵字決定了對(duì)象在映射中的存儲(chǔ)位置,,檢索對(duì)象時(shí)必須提供相應(yīng)的關(guān)鍵字,,就像在字典中查單詞一樣。關(guān)鍵字應(yīng)該是唯一的,,也就是說(shuō)Map中的鍵對(duì)象不允許重復(fù),,這是為了保證查詢結(jié)果的一致性。
  關(guān)鍵字本身并不能決定對(duì)象的存儲(chǔ)位置,,它需要對(duì)過(guò)一種散列(hashing)技術(shù)來(lái)處理,,產(chǎn)生一個(gè)被稱作散列碼(hash code)的整數(shù)值,散列碼通常用作一個(gè)偏置量,,該偏置量是相對(duì)于分配給映射的內(nèi)存區(qū)域起始位置的,,由此確定關(guān)鍵字/對(duì)象對(duì)的存儲(chǔ)位置。理想情況下,,散列處理應(yīng)該產(chǎn)生給定范圍內(nèi)均勻分布的值,,而且每個(gè)關(guān)鍵字應(yīng)得到不同的散列碼,。
  1:HashMap: 實(shí)現(xiàn)一個(gè)鍵到值映射的哈希表,,通過(guò)鍵取得值對(duì)象,允許存儲(chǔ)空對(duì)象,,而且允許鍵是空(由于鍵必須是唯一的,,當(dāng)然只能有一個(gè))。
  2:HashTable: 實(shí)現(xiàn)一個(gè)映象,,所有的鍵必須非空,。為了能高效的工作,定義鍵的類必須實(shí)現(xiàn)hashcode()方法和equal()方法,。這個(gè)類是前面java實(shí)現(xiàn)的一個(gè)繼承,,并且通常能在實(shí)現(xiàn)映象的其他類中更好的使用。Dictionary的子類,,確省是線程同步的,。不允許關(guān)鍵字或值為null,當(dāng)元素的順序很重要時(shí)選用TreeMap,,當(dāng)元素不必以特定的順序進(jìn)行存儲(chǔ)時(shí),,使用HashMap.
  Hashtable的使用不被推薦,因?yàn)镠ashMap提供了所有類似的功能,,并且速度更快,。當(dāng)你需要在多線程環(huán)境下使用時(shí),HashMap也可以轉(zhuǎn)換為同步的,。
  考試大提示:在編寫程序的過(guò)程中,,使用到集合類,要根據(jù)不同的需求,,來(lái)決定使用哪種集合類,,比如,,要經(jīng)常遍歷集合內(nèi)元素,就要使用List,,如果要保證集合中不存在重復(fù)的數(shù)據(jù),,就要用Set;如果要通過(guò)某一鍵來(lái)查找某一值,,就要使用Map,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多