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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    Java提供了數種持有對象的方式,包括語言內置的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個面試中的經典問題。
    1 Collection
    Collections的區別。
    2 List, Set, Map
    是否繼承自Collection接口。
    3 ArrayList
    Vector的區別。
    4 HashMap
    Hashtable的區別。
    篇尾有答案,我們開始正題。

    集合Collection接口
    --Collection
    是任何對象組,元素各自獨立,通常擁有相同的套用規則。Set List由它派生。
    基本操作 增加元素add(Object obj); addAll(Collection c); 
    刪除元素 remove(Object obj);  removeAll(Collection c);
    求交集 retainAll(Collection c);

    訪問/遍歷集合元素的好辦法是使用Iterator接口(迭代器用于取代Enumeration)
    Public interface Iterator{
      Public Boolean hasNext(0;
    Public Object next(0;
    Public void remove(0;
    }

    set
    --
    沒有重復項目的集合
    有三種特定類型的集可用
    HashSet-
    基于散列表的集,加進散列表的元素要實現hashCode()方法
    LinkedHashSet-
    對集迭代時,按增加順序返回元素
    TreeSet-
    基于(平衡)樹的數據結構

    清單List
    --
    位置性集合。加進清單的元素可以加在清單中特定位置或加到末尾
    有兩個特定版本
    ArrayList(
    數組表)-類似于Vector,都用于縮放數組維護集合。區別:
    .同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
    .數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
    LinkedList(
    鏈表)-是雙向鏈表,每個節點都有兩個指針指向上一節點和下一節點。
    用在FIFO,用addList()加入元素 removeFirst()刪除元素
    用在FILO,addFirst()/removeLast()
    ListIterator
    提供雙向遍歷next() previous(),可刪除、替換、增加元素

    映射表Map
    --
    用于關鍵字/數值對,像個Dictionary
    處理Map的三種集合
    關鍵字集KeySet()
    數值集value()
    項目集enrySet()
    四個具體版本
    HashMap-
    散列表的通用映射表
    LinkedHashMap-
    擴展HashMap,對返回集合迭代時,維護插入順序
    WeakHashMap-
    基于弱引用散列表的映射表,如果不保持映射表外的關鍵字的引用,則內存回收程序會回收它
    TreeMap-
    基于平衡樹的映射表

    Collections類,用于同步集合,還能改變集合只讀方式的類
    e.g.:
    Map mp=new HashMap()
    mp=Collections.synchronizedMap(mp); //
    生成線程安全的映射表
    mp=Collections.unmodifiableMap(mp); //
    生成只讀映射表

    Comparable 自然順序的排序類  Comparator 面向樹的集合排序類

    容器分類學(Container taxonomy)
    集合接口: Collection List Set;Map Iterator ListIterator
    抽象類: AbstractCollection AbstractList AbstractSet AbstractMap AbstractSequentiaList。
    Implementations
    Hash TableResizable ArrayBalanced TreeLinked List
    InterfacesSetHashSetTreeSet
    ListArrayListLinkedList
    MapHashMapTreeMap

     

    老版本中的集合類型
    Vector

    Vector
    ,就是向量。一種異構的混合體,可以動態增加容量。對它的操作簡要如下
    比如我們有一個Vector: Vector myVec=new Vector(a_Array.length)
    取得vector的長度:myVec.size();
    賦值:set(int position,Object obj) / setElementAt(Object obj, int position) –不支持動態增長
          add(Object obj )/ addElement(Object obj)
    Vector末尾加入對象
    e.g.
    myVec.add(new a_Array[0]);
    取出元素:get(int position) / getElement(int position)

    Stack
    Vector的子類。就是數據結構里講濫了的堆棧(這個詞可簡稱棧,不要混淆于heap-堆)。后進先出的存取方式。
    Stack()
    構造空棧
    Empty()
    叛空
    Search()
    檢查堆棧是否有元素
    Peek()
    取得棧頂元素
    Pop()
    彈棧
    Push()
    入棧

    Enumeration接口

    Dictionary
    字典。關鍵字/數值方式存取數據,如果映射沒有此關鍵字,取回null

    Hashtable
    Dictionary結構的具體實現。

    面試題答案
    Collection
    Collections的區別。
    Collections
    是個java.util下的類,它包含有各種有關集合操作的靜態方法。
    Collection
    是個java.util下的接口,它是各種集合結構的父接口。
    List, Set, Map
    是否繼承自Collection接口? ListSet  Map不是
    ArrayList
    Vector的區別。
    .同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
    .數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
    HashMap
    Hashtable的區別
    .歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMapJava 1.2引進的Map接口的一個實現
    .同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
    .值:只有HashMap可以讓你將空值作為一個表的條目的keyvalue

    posted on 2007-11-24 15:06 禮物 閱讀(218) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。

    網站導航:
     
    主站蜘蛛池模板: 亚洲五月激情综合图片区| 亚洲国产综合精品| ass亚洲**毛茸茸pics| 一级中文字幕免费乱码专区| 在线免费观看国产| 亚洲av无码成人精品区| 亚洲高清日韩精品第一区| 美女羞羞免费视频网站| 国产亚洲午夜精品| 8x8×在线永久免费视频| 无码专区一va亚洲v专区在线 | 亚洲精品在线免费观看| 国产zzjjzzjj视频全免费| 成年女人色毛片免费看| 国产精品视_精品国产免费 | 亚洲日韩国产欧美一区二区三区 | 亚洲国产精品一区二区第一页免| 久久精品国产亚洲AV嫖农村妇女| 国产亚洲精品91| 91九色精品国产免费| 成年大片免费视频| 亚洲av成人无码久久精品| 亚洲中文无码av永久| 两性色午夜免费视频| 成人免费视频国产| 亚洲精品一卡2卡3卡三卡四卡| 国产色在线|亚洲| 国产成人亚洲综合无| 中文字幕手机在线免费看电影 | 18级成人毛片免费观看| 免费观看男人免费桶女人视频| 免费成人av电影| 国产91在线|亚洲| 日本免费大黄在线观看| 在线免费一区二区| 亚洲视频手机在线| 中文字幕久无码免费久久| 又粗又大又黑又长的免费视频| 亚洲精品无码久久一线| 美女的胸又黄又www网站免费| 18禁成年无码免费网站无遮挡|