最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java編程知識(shí)-Collections集合繼承結(jié)構(gòu)

2018-11-09 15:35 作者:動(dòng)力節(jié)點(diǎn)  | 我要投稿

  面向?qū)ο笳Z(yǔ)言對(duì)事物的體現(xiàn)都是以對(duì)象的形式,所以為了方便對(duì)多個(gè)對(duì)象的操作,就對(duì)對(duì)象進(jìn)行存儲(chǔ),集合就是存儲(chǔ)對(duì)象最常用的一種方式。


  數(shù)組雖然也可以存儲(chǔ)對(duì)象,但長(zhǎng)度是固定的;集合長(zhǎng)度是可變的,數(shù)組中可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型,集合只能存儲(chǔ)對(duì)象。


  集合類(lèi)的特點(diǎn):集合只用于存儲(chǔ)對(duì)象,集合長(zhǎng)度是可變的,集合可以存儲(chǔ)不同類(lèi)型的對(duì)象。


  集合框架圖

 

 Collection(集合的最大接口)繼承關(guān)系


  ——List可以存放重復(fù)的內(nèi)容


  ——Set不能存放重復(fù)的內(nèi)容,所以的重復(fù)內(nèi)容靠hashCode()和equals()兩個(gè)方法區(qū)分


  ——Queue隊(duì)列接口


  ——SortedSet可以對(duì)集合中的數(shù)據(jù)進(jìn)行排序


  Collection定義了集合框架的共性功能。


  1,添加


  add(e);


  addAll(collection);


  2,刪除


  remove(e);


  removeAll(collection);


  clear();


  3,判斷。


  contains(e);


  isEmpty();


  4,獲取


  iterator();


  size();


  5,獲取交集。


  retainAll();


  6,集合變數(shù)組。


  toArray();


  *add方法的參數(shù)類(lèi)型是Object。以便于接收任意類(lèi)型對(duì)象。


  *集合中存儲(chǔ)的都是對(duì)象的引用(地址)


  List的常用子類(lèi)


  List:


  特有方法。凡是可以操作角標(biāo)的方法都是該體系特有的方法。


  增


  add(index,element);


  addAll(index,Collection);


  刪


  remove(index);


  改


  set(index,element);


  查


  get(index):


  subList(from,to);


  listIterator();


  intindexOf(obj):獲取指定元素的位置。


  ListIteratorlistIterator();


  ——ArrayList線程不安全,查詢速度快


  ——Vector線程安全,但速度慢,已被ArrayList替代


  ——LinkedList鏈表結(jié)果,增刪速度快


  Set接口


  Set:元素是無(wú)序(存入和取出的順序不一定一致),元素不可以重復(fù)。


  |——HashSet:底層數(shù)據(jù)結(jié)構(gòu)是哈希表。是線程不安全的。不同步。


  HashSet是如何保證元素唯一性的呢?


  是通過(guò)元素的兩個(gè)方法,hashCode和equals來(lái)完成。


  如果元素的HashCode值相同,才會(huì)判斷equals是否為true。


  如果元素的hashcode值不同,不會(huì)調(diào)用equals。


  注意,對(duì)于判斷元素是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法。


  ——TreeSet:


  有序的存放:TreeSet線程不安全,可以對(duì)Set集合中的元素進(jìn)行排序


  通過(guò)compareTo或者compare方法來(lái)保證元素的唯一性,元素以二叉樹(shù)的形式存放。


  集合的輸出


  4種常見(jiàn)的輸出方式


  ——Iterator:迭代輸出,使用最多的輸出方式


  ——ListIterator:Iterator的子接口,專(zhuān)門(mén)用于輸出List中的內(nèi)容


  ——Enumeration


  ——foreach


  在迭代時(shí),不可以通過(guò)集合對(duì)象的方法操作集合中的元素。


  因?yàn)闀?huì)發(fā)生ConcurrentModificationException異常。


  所以,在迭代器時(shí),只能用迭代器的放過(guò)操作元素,可是Iterator方法是有限的,


  只能對(duì)元素進(jìn)行判斷,取出,刪除的操作,


  如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。


  該接口只能通過(guò)List集合的listIterator方法獲取。


  Map接口


  Correction、Set、List接口都屬于單值的操作,而Map中的每個(gè)元素都使用key——>value的形式存儲(chǔ)在集合中。


  Map集合:該集合存儲(chǔ)鍵值對(duì)。一對(duì)一對(duì)往里存。而且要保證鍵的唯一性。


  1,添加。


  put(Kkey,Vvalue)


  putAll(Map<?extendsK,?extendsV>m)


  2,刪除。


  clear()


  remove(Objectkey)


  3,判斷。


  containsValue(Objectvalue)


  containsKey(Objectkey)


  isEmpty()


  4,獲取。


  get(Objectkey)


  size()


  values()


  entrySet()


  keySet()


  8、Map接口的常用子類(lèi)


  Map


  |HashMap:底層是哈希表數(shù)據(jù)結(jié)構(gòu),允許使用null值和null鍵,該集合是不同步的。將hashtable替代,jdk1.2.效率高。


  |--TreeMap:底層是二叉樹(shù)數(shù)據(jù)結(jié)構(gòu)。線程不同步??梢杂糜诮omap集合中的鍵進(jìn)行排序。


  集合工具類(lèi)


  Collections:集合框架的工具類(lèi)。里面定義的都是靜態(tài)方法。


  Collections和Collection有什么區(qū)別?


  Collection是集合框架中的一個(gè)頂層接口,它里面定義了單列集合的共性方法。


  它有兩個(gè)常用的子接口,


  List:對(duì)元素都有定義索引。有序的。可以重復(fù)元素。


  Set:不可以重復(fù)元素。無(wú)序。


  Collections是集合框架中的一個(gè)工具類(lèi)。該類(lèi)中的方法都是靜態(tài)的


  提供的方法中有可以對(duì)list集合進(jìn)行排序,二分查找等方法。


  通常常用的集合都是線程不安全的。因?yàn)橐岣咝省?/p>


  如果多線程操作這些集合時(shí),可以通過(guò)該工具類(lèi)中的同步方法,將線程不安全的集合,轉(zhuǎn)換成安全的。

? ? ? ?關(guān)注“動(dòng)力節(jié)點(diǎn)Java學(xué)院”微信公眾號(hào),更多Java基礎(chǔ)知識(shí)等你來(lái)獲取。


Java編程知識(shí)-Collections集合繼承結(jié)構(gòu)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
会昌县| 密云县| 临沂市| 宝坻区| 邯郸县| 济南市| 稻城县| 武汉市| 明光市| 遂平县| 大庆市| 延吉市| 尤溪县| 伊川县| 凤冈县| 建阳市| 莒南县| 富蕴县| 库车县| 张掖市| 康乐县| 八宿县| 七台河市| 无锡市| 鄂托克旗| 交口县| 台东县| 连山| 绿春县| 彭泽县| 平遥县| 香港 | 余庆县| 石门县| 定州市| 巴林左旗| 广西| 双柏县| 温州市| 哈密市| 邓州市|