<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗,分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請與我聯(lián)系。

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
    在5.0中,collection最大的一個改變就是可以指定它的具體類型:
    List<String> list=new List<String>;

    兩個最基本的接口:
    public interface Collection<E>
    {
    boolean add(E element);
    Iterator<E> iterator();
    . . .
    }

    public interface Iterator<E>
    {
    E next();
    boolean hasNext();
    void remove();
    }

    在5.0以前,常用的形式就是:
    Collection<String> c = . . .;
    Iterator<String> 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
    }
    這種方式對任何實現(xiàn)了Iterable接口的類都適用。

    在使用remove的時候特別要注意的一點是,在調(diào)用remove之前必須先調(diào)用一次next方法,因為next就像是在移動一個指針,remove刪掉的就是指針剛剛跳過去的東西。即使是你想連續(xù)刪掉兩個相鄰的東西,也必須在每次刪除之前調(diào)用next。

    對collection排序和查找
    Collections類的sort方法可以對任何實現(xiàn)了List接口的類進行排序。在排序過程中,他默認這些類實現(xiàn)了Comparable接口,如果想用其他方法排序,可以在調(diào)用sort方法的時候提供一個Comparator對象:
    Comparator<Item> itemComparator = new
    Comparator<Item>()
    {
    public int compare(Item a, Item b)
    {
    return a.partNumber - b.partNumber;
    }
    });
    反向排序:
    Collections.sort(items, itemComparator);
    Collections.sort(items, Collections.reverseOrder(itemComparator));

    查找一個對象:
    i = Collections.binarySearch(c, element);
    i = Collections.binarySearch(c, element, comparator);
    但是這些list必須是已經(jīng)排好序了。而且要注意的是這個算法需要隨機訪問collection,如果不支持隨機訪問那么這個算法的效率可能會很低。

    幾種常用Collection:
    ArrayList
    An indexed sequence that grows and shrinks dynamically
    可以隨機訪問,但是如果要從中間刪除一個對象會影響效率,因為有些未刪除的對象要相應的調(diào)整位置。非線程安全,但效率會比Vector要高,如果在單線程下,選它而不是Vector。

    LinkedList
    An ordered sequence that allows efficient insertions and removal at any location
    只能按順序訪問,添加刪除很方便。雖然提供了get(n)方法,但實際上還是順序訪問的,如果發(fā)現(xiàn)在LinkedList里面使用了這個方法,要考慮這個List類型是否選的合適

    HashSet
    An unordered collection that rejects duplicates
    以hashcode為索引,適用于不知道所存對象位置而想尋找某個對象的情況。不可重復

    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的時候會給與一個優(yōu)先級,從queue中取出的時候先取出優(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

    posted on 2007-06-25 10:41 rogerfan 閱讀(236) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
    主站蜘蛛池模板: 4444www免费看| 免费无码黄网站在线观看| 亚洲视频精品在线观看| 特级做A爰片毛片免费69| 无码色偷偷亚洲国内自拍| 亚洲精品国产精品乱码不99 | 国产精品免费视频观看拍拍| 久久亚洲精品中文字幕无码 | 国产又黄又爽又刺激的免费网址 | 91免费资源网站入口| 免费一级全黄少妇性色生活片| 亚洲福利在线观看| 午夜毛片不卡免费观看视频| 国产免费播放一区二区| 亚洲熟妇自偷自拍另欧美| 亚洲精品无码久久久久去q| 无码精品A∨在线观看免费| 国产高潮流白浆喷水免费A片 | 亚洲精品成人网站在线播放| 亚洲av片一区二区三区| 亚色九九九全国免费视频| 成人国产精品免费视频| 亚洲国产精品无码久久九九大片| 久久精品国产精品亚洲蜜月| 国产jizzjizz视频免费看| 美女视频黄的免费视频网页| 亚洲精品天堂成人片AV在线播放| 国产亚洲精品激情都市| 亚洲天堂免费在线| tom影院亚洲国产一区二区| 亚洲成A人片在线观看中文 | 伊人免费在线观看| 亚洲精品中文字幕无乱码麻豆| 免费观看毛片视频| 日韩一级片免费观看| 亚洲1234区乱码| 亚洲国产成人一区二区三区| 欧洲精品成人免费视频在线观看 | 最新亚洲成av人免费看| 小说专区亚洲春色校园| 亚洲午夜久久影院|