今天第一次去參加公司的招聘會,在面試中問到了有集合的特點,但是當時只答出來了一部分,不過還好,面試官對我的答案還挺滿意的,順利的通過了面試!得到了來之不易的實習機會!
面試回學校後,通過翻閱書籍和查詢網路資源,對集合類的特點做了,如下總結!
集合類的祖先介面分別是collection和map; 而collection中,已知所實現的類分別有:abstractcollection, abstractlist, abstractqueue, abstractsequentiallist, abstractset, arrayblockingqueue, arraydeque, arraylist, attributelist, beancontextservicessupport, beancontextsupport, concurrentlinkedqueue, concurrentskiplistset, copyonwritearraylist, copyonwritearrayset, delayqueue, enumset, hashset, jobstatereasons, linkedblockingdeque, linkedblockingqueue, linkedhashset, linkedlist, priorityblockingqueue, priorityqueue, rolelist, roleunresolvedlist, stack, synchronousqueue, treeset, vector.
而collection介面中有兩個常用的子介面分別是list和set.在list介面下又有如下實現的集合類:abstractlist, abstractsequentiallist, arraylist, attributelist, copyonwritearraylist, linkedlist, rolelist, roleunresolvedlist, stack, vector,像常用的arraylist和linkedlist vector都包含在其中.而set介面下又實現了如下類:abstractset, concurrentskiplistset, copyonwritearrayset, enumset, hashset, jobstatereasons, linkedhashset, treeset,像常用的hashset和treeset;而這兩個不同介面下所實現的類,不同點主要是list下的集合類,可以顧念重複元素,元素是有
序的(訪問順序一致),可以通過list腳標來獲取指定元
素;而set不可以有重複元素,元素是無序的。
list介面中,比較常用的類有三個:arraylist、vactor、linkedlist。
arraylist :執行緒不安全的,對元素的查詢速度快。
vector :執行緒安全的,多了一種取出元素的方式:列舉(enumeration),但已被arraylist取代。
linkedlist :鍊錶結構,對元素的增刪速度很快。
set介面中,比較常用的類有兩個:hashset、treeset:
hashset:要保證元素唯一性,需要覆蓋掉object中的equals和hashcode方法(因為底層是通過這兩個方法來判斷兩個元素是否是同乙個)。
treeset:以二叉樹的結構對元素進行儲存,可以對元素進行排序。
排序的兩種方式:
1、元素自身具備比較功能,元素實現comparable介面,覆蓋compareto方法。
2、建立乙個比較器物件,該物件實現comparator介面,覆蓋compare方法,並將該物件作為引數傳給treeset的建構函式(可以用匿名內部類)。
map介面其特點是:元素是成對出現的,以鍵和值的形式體現出來,鍵要保證唯一性:常用類有:hashmap,hashtable ,treemap。
hashmap:執行緒不安全等的,允許存放null鍵null值。
hashtable:執行緒安全的,不允許存放null鍵null值。
treemap:可以對鍵進行排序(要實現排序方法同treeset)。
collection和map兩個介面對元素操作的區別:
存入元素:
collection介面下的實現類通過add方法來完成,而map下是通過put方法來完成。
取出元素:
collection介面下:list介面有兩種方式:1、get(腳標);2、通過iterator迭代方式獲取元素;而vactor多了一種列舉(enumeration)的方式。set介面通過迭代的方式獲取元素。
map介面下:先通地keyset獲取鍵的系列,然後通過該系列使用iterator迭代方式獲取元素值。
Java集合常用類特點
集合的結構如下圖所示 集合的兩個頂級介面分別為 collection和map collection下有兩個比較常用的介面分別是list 列表 和set 集 其中list可以儲存重複元素,元素是有序的 訪問順序一致 可以通過list腳標來獲取指定元素 而set不可以有重複元素,元素是無序的。list介...
java 集合(list set map)的特點
今天趁有空特意從網上整理資料方便日後回憶。一 list 有順序以線性方式儲存,可以存放重複物件 執行緒安全方法 list list collections.synchronizedlist new linkedlist linkedlist 雙向鍊錶實現儲存 索引資料慢插入數度較快 執行緒不安全 比...
java的集合類
由collection介面派生的兩個介面是list和set set set介面同樣是collection介面的乙個子介面,它表示數學意義上的集合概念。set中不包含重複的元素,即set中不存兩個這樣的元素e1和e2,使得e1.equals e2 為true。由於set介面提供的資料結構是數學意義上集...