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

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

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

    我思故我強

    java Collection 學習筆記


    支持類集的接口如下:
    Collection
    List
    Set
    SortedSet
    Comparator 定義兩個對象如何比較
    Iterator 枚舉類集中的對象
    ListIterator枚舉類集中的對象
    Collection接口(省略常用的方法)
    Boolean add(Object obj) 添加一個Object元素
    boolean addAll(Collection c)
    boolean contains(Object obj)? 判斷obj是否是調用類集的一個元素(屬于)
    boolean containsAll(Collection c)? 判斷c是否是調用類集的子集(包含)
    boolean equals(Collection c) 判斷c是否與調用類集相等
    int hashCode() 返回調用類集的hash碼
    Iterator iterator() 返回調用類集的迭代程序
    boolean removeAll(Collection c) 從調用類集中去掉所有c中包含的元素(差集)
    boolean retainAll(Collection c) 從調用類集中去掉包含在c中以外的元素(補集)
    Object[] toArray() 返回類集的元素組成的數組
    ?
    Void clear()
    boolean isEmpty()
    int size()

    類集包含一個add(Object obj)方法,因此可以包含任意Object數據,但是不能直接存儲:int,char,Double等數據。可以使用下面的方法實現:
    ArrayList a=new ArrayList();
    a.add(new Integer(1));
    a.add(new Integer(2));
    ……

    當類集不能被修改時,可能引發 UnsupportedOperationException異常。企圖將一個不兼容的對象加入到一個類集中時可能引發ClassCastException異常。

    List接口(從Collection繼承而來,使用基于0的下標)
    void add(int index,Object obj) 插入點以后的元素將后移
    boolean addAll(int index,Collection c) 如果調用列表改變了,返回true,否則返回false
    Object get(int index)
    int indexOf(Object obj) 返回obj對象在列表中的索引,不存在返回-1
    int lastIndexOf(Object obj) 返回obj在列表中的最后一個實例的下標,不存在返回-1
    ListIterator listIterator()
    ListIterator listIterator(int index) 返回index開始的迭代程序
    Object set(int index,Object obj) 對列表index處的值進行修改
    List subList(int start,int end) 從start到end-1
    ?

    Set接口(從Collection派生,沒有定義新的方法)
    Set不允許有重復的元素。
    對Set調用add(Object obj)方法,如果obj已經存在集合中,將返回false。

    SortedSet接口
    Comparator comparator() 返回調用排序集合的比較函數,如果改集合使用自然順序,則返回null
    Object first() 返回被排序集合的第一個元素
    SortedSet headSet(Object end) 返回一個包含小于end元素的SortedSet
    Object last() 返回調用排序集合的最后一個元素
    SortedSet subSet(Object start,Object end) 包括從start到end-1
    SortedSet tailSet(Object start) 返回包含大于等于start的元素
    ?

    ArrayList擴展AstractList類,并執行List接口。ArrayList支持動態長度的數組。
    LinkList擴展了AbstractSequentialList,執行List接口。提供連接列表。
    HashSet擴展AbstractSet實現Set接口,元素沒有順序。對于大集合提供常量級基本操作。
    TreeSet使用樹來存儲的Set,對象按升序存儲。訪問和檢索非常快。

    iterator實現Iterator接口或者ListIterator接口。
    Iterator接口
    boolean hasNext()
    Object next() 如果沒有下一個元素則引發NoSuchElementException異常。
    void remove() 刪除當前元素,如果試圖在調用next()方法后調用remove()方法則引發IllegalStateException異常。
    ?
    ?

    ListIterator接口
    void add(Object obj) 將一個元素插入到當前元素之前,調用next()方法將返回該元素。
    boolean hasNext()
    boolean hasPrevious()
    Object next() 如果不存在引發NoSuchElementException
    int nextIndex() 如果不存在返回列表的大小
    void remove()
    void set(Object obj) 修改當前元素

    public void test1() {
    ? ArrayList al = new ArrayList();
    ? for (int i = 1; i < 10; i++) {
    ? al.add("ArrayList Element:" + i);
    ? }
    ? Iterator itr = al.listIterator();
    ? while (itr.hasNext()) {
    ? Object obj = itr.next();
    ? System.out.println(obj);
    ? }
    ? }

    public void test2() {
    ? HashSet hs = new HashSet();
    ? System.out.println("HashSet");
    ? for (int i = 1; i < 10; i++) {
    ? hs.add("HashSet Element:" + i);
    ? }
    ? Iterator itr = hs.iterator();
    ? while (itr.hasNext()) {
    ? Object obj = itr.next();
    ? System.out.println(obj);
    ? }
    ? }

    ? public void test3() {
    ? TreeSet ts = new TreeSet();
    ? System.out.println("TreeSet");
    ? for (int i = 1; i < 10; i++) {
    ? ts.add("TreeSet Element:" + i);
    ? }
    ? Iterator itr = ts.iterator();
    ? while (itr.hasNext()) {
    ? Object obj = itr.next();
    ? System.out.println(obj);
    ? }
    ? }

    ? public void test4()
    ? {
    ? HashMap hm=new HashMap();
    ? for ( int i=0;i<10;i++)
    ? {
    ? hm.put("item"+i,"value"+i);
    ? }

    ? Set set=hm.entrySet();
    ? Iterator itr=set.iterator();
    ? while (itr.hasNext())
    ? {
    ? Map.Entry me=(Map.Entry)itr.next();
    ? System.out.println(me.getKey()+";"+me.getValue());
    ? }

    ? hm.put("item5","modifyed value");
    ? System.out.println(hm.get("item5") );

    ? set=hm.entrySet();
    ? itr=set.iterator();
    ? while (itr.hasNext())
    ? {
    ? Map.Entry me=(Map.Entry)itr.next();
    ? System.out.println(me.getKey()+";"+me.getValue());
    ? }

    ? }

    ?

    ?

    posted on 2007-09-13 16:29 李云澤 閱讀(430) 評論(0)  編輯  收藏 所屬分類: J2SE

    主站蜘蛛池模板: 亚洲精品少妇30p| 国产午夜亚洲精品午夜鲁丝片| 亚洲AV成人精品网站在线播放| 中文字幕a∨在线乱码免费看| 亚洲精品网站在线观看不卡无广告| 美女尿口扒开图片免费| 亚洲国产成人精品无码久久久久久综合| 亚洲中文无码永久免| 成人片黄网站A毛片免费| 亚洲最大成人网色香蕉| 色妞WWW精品免费视频| 亚洲性色精品一区二区在线| 黄a大片av永久免费| 色噜噜狠狠色综合免费视频 | 亚洲人成网站观看在线播放| 国产偷国产偷亚洲高清人| 亚洲精品国产日韩无码AV永久免费网| 黄页网址大全免费观看12网站| 亚洲AⅤ无码一区二区三区在线 | 亚洲成综合人影院在院播放| 免费观看美女用震蛋喷水的视频| 中国亚洲呦女专区| 四虎免费久久影院| 成人国产精品免费视频| 亚洲国产精品人久久| 两性刺激生活片免费视频| 亚洲欧美日韩中文无线码| 亚洲成人影院在线观看| 嫩草在线视频www免费观看| 91亚洲国产成人久久精品网址| 天天看片天天爽_免费播放| 成人一级免费视频| 亚洲制服中文字幕第一区| 成人影片麻豆国产影片免费观看| 羞羞视频在线观看免费| 精品亚洲成AV人在线观看| 最近2019中文字幕免费看最新| 一级毛片a免费播放王色电影| 亚洲免费在线视频| 全部免费国产潢色一级| 午夜精品免费在线观看|