亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java基礎--容器(1)

2019-11-14 10:40:00
字體:
來源:轉載
供稿:網友
1.容器?容器:java API所提供的一系列類的實例,用于在程序中存放對象。?

J2SDK所提供的容器API位于java.util包內,容器API的類圖結構如下:?

左邊是一個一個裝,右邊是一對一對來裝?Set的數據對象沒有順序并且不可以重復,List有順序可以重復(互相的equals)?Map接口定義了存儲“鍵(key)—值(value)映射對”的方法?2.Collection接口?Collection接口中所定義的方法:?int size();                               

boolean isEmpty();?void clear();                           

boolean contains(Object element);?      是不是包含某個對象boolean add(Object element);?boolean remove(Object element);?        去除Iterator iterator();?boolean containsALL(Collection c);?     是不是包含另一個集合中的所有元素boolean addALL(Collection c);??boolean removeALL(Collection c);??boolean retainALL(Collection c);??          求交集Object[] toArray();?例如:?import java.util.*;

public class Name {    PRivate String s;    private String c;    public Name(String s, String c) {        this.s = s;        this.c = c;    }    public String toString() {        return s + " " + c;    }}public class Cllection {    public static void main(String agrs[]) {        Collection c = new ArrayList(); //使用父類引用指向子類對象,可以放入不同類型的對象        c.add("hello");        c.add(new Integer(100)); //只能添加對象,不能添加基礎的數據類型        c.add(new Name("f1", "l1"));        System.out.println(c.size());        System.out.println(c);    }}結果是:3      [hello, 100, f1 l1]?3.Collection方法舉例?容器類對象在調用remov、contains等方法時需要比較對象是否相等,這回涉及到對象類型的equals方法和hashCode?方法;對于自定義的類型,需要重寫equals方法以實現自定義的對象相等規則。?注意:相等的對象應該具有相等的hash Codes。?重寫equals方法時同時也要重寫hashCode。增加Name類的equals和hashCode方法如下:??
public class Name {    private String s;    private String c;    public Name(String s, String c) {        this.s = s;        this.c = c;    }    public String getS() {        return s;    }    public String getC() {        return c;    }    public String toString() {        return s + " " + c;    }    public boolean equals(Object obj) {        if (obj instanceof Name) {            Name name = (Name) obj;            return (s.equals(name.s))                    && (s.equals(name.s));        }        return super.equals(obj);    }    public int hashCode() { //地址,索引        return s.hashCode();    }}
public class Cllection {    public static void main(String agrs[]) {        Collection c = new HashSet(); //使用父類引用指向子類對象,可以放入不同類型的對象        c.add("hello");        c.add(new Integer(100)); //只能添加對象,不能添加基礎的數據類型        c.add(new Name("f1", "l1"));        c.remove("hello");        c.remove(new Integer(100));        System.out.println(c.remove(new Name("f1", "l1")));        //equals時才去除,返回true,這兩個不是同一個對象        System.out.println(c);    }}結果是:true   []?如果沒有重寫equals方法時,結果是:?false  [f1   l1]4.Iterator接口?所有實現了Collection接口的容器類都有一個iterator方法用以返回一個實現了Iterator接口的對象。Iterator是?統一的來遍歷Collection里所有元素的方法Iterator對象稱作迭代(重復反饋過程的活動)器,用以方便的實現對容器內元素的遍歷操作。?Iterator接口定義了如下方法:?boolean hasNext();       //判斷游標右邊是否有元素?Object next();                 //返回游標右邊的元素并將游標移動到下一個位置?void remove();               //刪除游標左邊的元素,在執行完next之后該操作只能執行一次?
public class TestIterator {    public static void main(String agrs[]) {        Collection c = new HashSet();        c.add(new Name("f1", "l1"));        c.add(new Name("f2", "l2"));        c.add(new Name("f3", "l3"));        Iterator i = c.iterator();        while (i.hasNext()) {            Name n = (Name) i.next();            System.out.println(n.getS() + " ");        }    }}結果是:f1    f2     f3Iterator對象的remove方法是在迭代過程中刪除元素的唯一的安全方法。例:
public class TestIterator {    public static void main(String agrs[]) {        Collection c = new HashSet();        c.add(new Name("f1", "1111"));        c.add(new Name("f2", "l2"));        c.add(new Name("f3", "1113"));        for (Iterator i = c.iterator(); i.hasNext(); ) {            Name n = (Name) i.next();            if (n.getC().length() < 3) {                i.remove();            }        }        System.out.println(c);    }}結果是:[f1 1111, f3 1113]?5.JDK1.5增強的for循環?增強的for循環對于遍歷array或collection的時候相當簡便?缺陷:數組:不能方便的訪問下標值?集合:與使用Iterator相比,不能方便的刪除集合中的內容,在內部也是調用Iterator?出了簡單遍歷并讀出其中的內容外,不建議使用增強for?例:
public class TestEnhanceFor {    public static void main(String agrs[]) {        Collection c = new HashSet();        c.add(new Name("a", "aa"));        c.add(new Name("b", "bb"));        c.add(new Name("c", "cc"));        for (Object o : c) {            System.out.println(o);        }    }}結果:a aa       

b bb              

c cc6.Set接口?Set接口是Collection的子接口,Set接口沒有提供額外的方法,但實現Set接口的容器類中的元素是沒有順序的,而且不可以重復。?Set容器可以與數學中“集合”的概念相對應,有HashSet,TreeSet等??

public class TestSet {    public static void main(String ages[]) {        Set s = new HashSet();        s.add("hello");        s.add("world");        s.add(new Name("f1", "l1"));        s.add(new Integer(100));        s.add(new Name("f1", "l1"));//如果Name中沒有重寫equals方法,該項就會被添加,如果重寫了,就不會添加        s.add("hello"); //相同元素不會被加入        System.out.println(s);    }}結果是:

[world, 100, hello, f1 l1]?

public class TestSet {    public static void main(String ages[]) {        Set s1 = new HashSet();        Set s2 = new HashSet();        s1.add("a");        s1.add("b");        s1.add("c");        s2.add("a");        s2.add("d");        s2.add("b");//Set和List容器類都具有        //Collection(Collection c)構造方法用于初始化容器類        Set sn = new HashSet(s1);        sn.retainAll(s2);                             //交集        Set su = new HashSet(s1);        su.addAll(s2);        System.out.println(sn);        System.out.println(su);    }}結果是:

[a, b]      

[a, b, c, d]


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久免费视频在线| 精品亚洲一区二区三区在线观看| 久久久久久成人精品| 57pao精品| 欧美大片第1页| 精品欧美国产一区二区三区| 久久久久久国产精品三级玉女聊斋| 成人国产精品一区| 亚洲精品一区久久久久久| 欧美日韩一区二区在线| 精品免费在线视频| 亚洲图片制服诱惑| 久久国内精品一国内精品| 久久人人爽人人爽人人片亚洲| 深夜精品寂寞黄网站在线观看| 欧美xxxx18国产| 激情懂色av一区av二区av| 久久久精品一区| 日韩欧美一区二区在线| 久久成年人视频| 亚洲精品av在线| 亚洲国产精品嫩草影院久久| 久久亚洲影音av资源网| 九九热精品视频在线播放| 久久中文字幕在线| 国产99久久精品一区二区| 国产成人精品久久| 正在播放欧美一区| 日韩在线中文视频| 亚洲国产精品成人av| 久久久久久久久国产精品| 久久精品视频播放| 夜夜嗨av色综合久久久综合网| 在线观看不卡av| 精品国内亚洲在观看18黄| 久久久久久久999精品视频| 成人国产亚洲精品a区天堂华泰| 精品欧美激情精品一区| 日韩av片永久免费网站| 欧美激情视频在线免费观看 欧美视频免费一| 日韩中文在线中文网三级| 欧美黑人视频一区| 国产精品免费久久久| 欧美大人香蕉在线| 中国china体内裑精亚洲片| 日韩视频免费看| 久久精品国产一区二区电影| 久久精品91久久久久久再现| 成人自拍性视频| 久久久综合免费视频| 久久久久久高潮国产精品视| 中文字幕日韩综合av| 国语自产偷拍精品视频偷| 亚洲成人免费在线视频| 久久久久久久久久久久久久久久久久av| 亚洲社区在线观看| 亚洲男人天堂网站| 538国产精品一区二区在线| 俺去亚洲欧洲欧美日韩| 国产成人午夜视频网址| 日韩中文在线中文网在线观看| 中文字幕精品网| 欧美激情亚洲精品| 欧美一级片免费在线| 日韩av网址在线| 欧美丰满少妇xxxxx| 在线日韩精品视频| 日本成人免费在线| 国产精品久久久久77777| 亚洲伦理中文字幕| 狠狠躁夜夜躁人人爽天天天天97| 亚洲国产精品人久久电影| 欧美激情精品久久久久| 欧美激情一区二区三区成人| 久久激情视频免费观看| 国产一区二区在线播放| 久久精视频免费在线久久完整在线看| 日本在线观看天堂男亚洲| 国产高清在线不卡| 国产精品久久久久av| 欧美日韩综合视频| 亚洲另类欧美自拍| 国产在线视频2019最新视频| 日韩一二三在线视频播| 51精品国产黑色丝袜高跟鞋| 成人两性免费视频| 成人福利免费观看| 日韩成人在线视频观看| 菠萝蜜影院一区二区免费| 亚洲激情成人网| 日韩欧美黄色动漫| 欧美激情精品久久久| 亚洲成人精品久久| 97婷婷大伊香蕉精品视频| 国内精品久久久久伊人av| 精品中文字幕视频| 97在线观看视频| 日韩大陆欧美高清视频区| 黄网动漫久久久| 亚洲成人av在线播放| 在线电影欧美日韩一区二区私密| 欧美激情亚洲综合一区| 亚洲欧美日韩国产精品| 国产成人精品视频在线观看| 欧美电影电视剧在线观看| 久久久久久国产精品美女| 精品亚洲国产视频| 久久精品电影一区二区| 精品日本高清在线播放| 亚洲精品理论电影| 亚洲成人国产精品| 欧美在线中文字幕| 亚洲毛片在线观看| 久久久99免费视频| 国产欧美在线看| 国产成人精品视频在线观看| 精品亚洲男同gayvideo网站| 亚洲成色www8888| 国产精品国产福利国产秒拍| 久久人人爽亚洲精品天堂| 久久久电影免费观看完整版| 亚洲电影天堂av| 亚洲精品自拍第一页| 中文字幕av一区二区| 日韩欧美在线视频观看| 久久琪琪电影院| 国内精品久久影院| 久久成人18免费网站| 欧美午夜精品伦理| 色妞欧美日韩在线| 久久久久久免费精品| 中文字幕久热精品在线视频| 日韩激情av在线免费观看| 欧美日韩国产成人在线| 亚洲国产97在线精品一区| 在线视频日韩精品| 亚洲第一男人天堂| 国内精品国产三级国产在线专| 日韩av成人在线观看| 精品久久久久久久久久久| 日韩中文字幕在线精品| 亚洲自拍小视频免费观看| 国产精品91久久久久久| 精品在线小视频| 精品视频久久久久久久| 国产成人福利视频| 亚洲欧美国产va在线影院| 一区二区三区视频观看| 久久精品国产久精国产思思| 国产日韩欧美日韩大片| 91精品久久久久久久久久入口| 国产视频一区在线| 亚洲人成在线免费观看| 97**国产露脸精品国产| 亚洲成人精品av| 性欧美办公室18xxxxhd| 久久久亚洲国产天美传媒修理工| 日韩av综合中文字幕| 欧美午夜www高清视频| 日韩视频一区在线| 欧美大片免费观看在线观看网站推荐| 91亚洲精品久久久久久久久久久久| 欧美激情精品久久久久久黑人| 国产网站欧美日韩免费精品在线观看|