小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JR 精品文章 - 基于JDK5.0的一些collection類的使用總結(jié)

 不會(huì)游泳的魚 2007-09-29
基于JDK5.0的一些collection類的使用總結(jié)
 在5.0中,collection最大的一個(gè)改變就是可以指定它的具體類型:
 List list=new List; 兩個(gè)最基本的接口:
 public interface Collection { boolean add(E element); Iterator iterator(); . . . }
public interface Iterator { E next(); boolean hasNext(); void remove(); }
在5.0以前,常用的形式就是:
Collection c = . . .;
 Iterator iter = c.iterator();
while (iter.hasNext()) {
 String element = iter.next();
do something with element
}
但是在5.0中加入另外一種循環(huán)方式,類似于for each:
 for (String element : c) {
do something with element
}
這種方式對任何實(shí)現(xiàn)了Iterable接口的類都適用。
在使用remove的時(shí)候特別要注意的一點(diǎn)是,在調(diào)用remove之前必須先調(diào)用一次next方法,因?yàn)閚ext就像是在移動(dòng)一個(gè)指針,remove刪掉的就是指針剛剛跳過去的東西。即使是你想連續(xù)刪掉兩個(gè)相鄰的東西,也必須在每次刪除之前調(diào)用next。
 對collection排序和查找 Collections類的sort方法可以對任何實(shí)現(xiàn)了List接口的類進(jìn)行排序。在排序過程中,他默認(rèn)這些類實(shí)現(xiàn)了Comparable接口,如果想用其他方法排序,可以在調(diào)用sort方法的時(shí)候提供一個(gè)Comparator對象:
 Comparator itemComparator = new Comparator() {
public int compare(Item a, Item b) { return a.partNumber - b.partNumber; } });
 反向排序:
 Collections.sort(items, itemComparator);
Collections.sort(items, Collections.reverseOrder(itemComparator));
查找一個(gè)對象:
 i = Collections.binarySearch(c, element);
i = Collections.binarySearch(c, element, comparator);
但是這些list必須是已經(jīng)排好序了。而且要注意的是這個(gè)算法需要隨機(jī)訪問collection,如果不支持隨機(jī)訪問那么這個(gè)算法的效率可能會(huì)很低。
幾種常用Collection: ArrayList An indexed sequence that grows and shrinks dynamically 可以隨機(jī)訪問,但是如果要從中間刪除一個(gè)對象會(huì)影響效率,因?yàn)橛行┪磩h除的對象要相應(yīng)的調(diào)整位置。非線程安全,但效率會(huì)比Vector要高,如果在單線程下,選它而不是Vector。 LinkedList An ordered sequence that allows efficient insertions and removal at any location 只能按順序訪問,添加刪除很方便。雖然提供了get(n)方法,但實(shí)際上還是順序訪問的,如果發(fā)現(xiàn)在LinkedList里面使用了這個(gè)方法,要考慮這個(gè)List類型是否選的合適 HashSet An unordered collection that rejects duplicates 以hashcode為索引,適用于不知道所存對象位置而想尋找某個(gè)對象的情況。不可重復(fù) TreeSet A sorted set 與HashSet類似,但是所存對象是排了序的 LinkedHashSet A set that remembers the order in which elements were inserted PriorityQueue A collection that allows efficient removal of the smallest element 加入Queue的時(shí)候會(huì)給與一個(gè)優(yōu)先級,從queue中取出的時(shí)候先取出優(yōu)先級最低的 HashMap A data structure that stores key/value associations 存儲key/value對,非線程安全,與HashTable相比效率要高些 treeMap A map in which the keys are sorted 排序的HashMap LinkedHashMap A map that remembers the order in which entries were added

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多