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

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

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

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    Java集合與數組[zz]

    Posted on 2007-07-18 14:49 Matthew Chen 閱讀(679) 評論(0)  編輯  收藏 所屬分類: Java SE

    Java集合與數組

    1.Java2提供了一 個完整的集合框架,而Java的早期版本只提供了一些集合類,如Hashtable和Vector,以及內建的數組功能。


    2.組成集合框架的類和接口是java.util包的成員,Arrays類提供了用于操作數組的static方法,Aarrys類的方法包括用于查找的binarySearch方法,用于比較數組的equals方法,用于給數組賦值的fill方法,以及排序的sort方法和asList方法。另外對Arrays類中的對象進行排序,對象必須實現Comparable接口的compareTo方法

    3.Size方法得到List中元素的個數,get得到List中取出第一個元素

    4.Collection接口是集合層次結構中的根接口,Set接口和List接口都是從Collection接口中派生出來的,Collection接口包含了在集合中添加,清除,比較和保持對象的大規模操作。Collection接口提供了iterator方法得到Iterator。

    5.Collections類提供了許多操作集合的static方法,其中許多方法實現用于查找和排序等愛貓撲.愛生活。

    6.List是一個能包含重復元素的已排序的Collection,有時候List也稱為序列,List接口由ArrayList類,LinkedList類和Vector實現的,ArrayList是List可變數組的實現,類似Vector類的行為和功能,LinkedList則是List的鏈表實現。

    7.iterator的hasNext方法卸螩ollection是否還含有另外一個元素,如果還有,則hasNext方法返回true,next方法返回Collection中的下一個對象并移動到下一個元素。
     
    8.subList得到List的一部分,這一部分被稱為子表,對子表的修改都會影響到List,clear方法從List中刪除元素,
     
    9.toArray方法以數組的形式返回集合中的內容。
     
    10.Comparator對象提供一種排序方式,可以按不同Colletion自然順序的順序對Collection的元素排序,reverseOrder方法返回一個Comparator對象,它代表了集合的逆轉排序。也可以實現你自己的排序方法,前提是實現Comparator接口,并實現Comparator接口的compare方法
     
    11.Shuffle算法對list中的元素進行隨機排序,binarySearch算法在List中查找一個Object
     
    12.Set是不包含重復元素的Collection,集合框架含有Set的兩種實現方式:HashSet和TreeSet,HashSet把他的元素存儲在哈希表中,而TreeSet則把他的元素存儲在樹中。
     
    13.SortedSet接口擴展了Set并按排好的順序維護了它的元素,TreeSet類實現了它。

    14.headSet方法得到TreeSet中小于一個指定元素的子集,對這一子集的修改都會反映在TreeSet中,tailSet方法得到大于或等于指定元素的子集,同樣對它的修改都會反映在TreeSet中。
     
    15.Map把鍵映射到值并不包含重復的鍵,Map和Set的不同之處在于Map包含鍵和值,而Set只包含鍵,HashMap和TreeMap類實現了Map接口,HashMap把他的元素存儲在哈希表中,而TreeMap則把他的元素存儲在樹中。
     
    16.SortedMap接口擴展了Map并按排好的順序維護了它的元素,TreeMap類實現了它。
     
    17.內建的集合都是異步的,多線程對Collection的并發訪問可能導致不確定的結果,為了防止這個問題,可以在被多線程訪問的類外面使用同步包裝類,Collections類提供了一系列的static方法把集合轉化成不可以修改的形式,當試圖修改時,拋出異常。
    Public static方法頭文件:(同步)
    Collection synchronizedCollection(Collection c);
    List  synchronizedList(List c)
    其他類似。。
     
    Public static方法頭文件:(不可以修改)
    Collection unmodifiableCollection(Collection c);
    List  unmodifiableList(List c)
    其他類似。。

    集合框架提供了不同的抽象實現,程序員可以利用此來實現自己定義的實現!


    18.數組和容器的區別主要有以下三點:效率,類型識別以及可以持有primitives

    19.容器類保持的類型都是Object的,主要有三種 list ,set, map,容器的缺點主要是保存元素的時候,丟失元素的類型,使用元素的時候,必須進行類型轉換

    20 list的選擇:
       ArrayList隨機訪問的效率要比LinkList快,但是LinkList順序訪問的效率則高過ArrayList,另外LinkList在對元素進行插入和刪除操作時要比ArrayList的效率高,二者的最佳選擇方法是:首先選用ArrayList當發現“向元素中插入和刪除操作太多時”引發性能問題時,換用LinkList,當然處理固定元素還是選用數組

    21.set的選擇:
       HashSet的各項性能都要比TreeSet強,但是TreeSet的意義在于能順序保存元素,因此只有在需要有順序set時才用TreeSet;
       LinkedHashSet的插入操作要比HashSet慢,主要是因為前者承擔了鏈表和hash容器的雙重代價,由于鏈表的緣故LinkedHashSet的遍歷則要比 HashSet快

    22.Map的選擇:
       HashMap的效率和HashTable差不多,一般來說HASHMAP要稍快,HASHMAP是用來取代HASHTABLE的,TREEMAP的效率要比HAHSMAP低,但是TREEMAP由于是樹結構,所以是有序的,因此不需要進行排序操作,如果不需要恒定有序的MAP時,一般來說首選HASHMAP,LINKEDHASHMAP比HASHMAP要慢,因為除了保存HASH容器外還有保存鏈表,IDENTITYHASHMAP沒有辦法和上敘MAP比較,它用的是==來比較兩個對象的相等性,而不是equals()


    23.所有hash類容器持有的對象必須覆蓋hashcode和equals方法

    主站蜘蛛池模板: 国产精品久久亚洲一区二区| 亚洲人成免费网站| 免费精品国自产拍在线播放| 国产极品粉嫩泬免费观看| 亚洲日韩精品A∨片无码加勒比| 日韩高清在线免费观看| 亚洲人和日本人jizz| 国产jizzjizz视频免费看| 国产精品亚洲综合五月天| 成年免费大片黄在线观看岛国| 亚洲精品视频在线免费| 久草在视频免费福利| 亚洲中文字幕无码爆乳app| 四虎影院免费视频| 亚洲午夜精品一区二区麻豆| 日韩成人免费aa在线看| 色网站在线免费观看| 亚洲日韩中文字幕在线播放| 免费人成黄页在线观看日本| 亚洲午夜精品一区二区| 女人被男人躁的女爽免费视频| 亚洲A∨精品一区二区三区下载| 亚洲?V无码乱码国产精品| 日本视频免费高清一本18| 亚洲国产夜色在线观看| 精品无码国产污污污免费| g0g0人体全免费高清大胆视频| 亚洲欧洲日产国码无码网站| 1000部免费啪啪十八未年禁止观看| 亚洲人成影院午夜网站| 免费在线视频一区| 日韩精品人妻系列无码专区免费 | 国产成人毛片亚洲精品| 国产日韩AV免费无码一区二区| 久久精品国产亚洲AV无码偷窥| 一二三四在线播放免费观看中文版视频 | 美女视频黄免费亚洲| 久久久久亚洲精品男人的天堂| 可以免费观看的毛片| 亚洲人成小说网站色| 国产亚洲精品岁国产微拍精品|