国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

javase基礎(chǔ)復(fù)習(xí)攻略《七》

2019-11-14 23:17:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
javase基礎(chǔ)復(fù)習(xí)攻略《七》

  容器是什么?通俗的講容器指可以裝其它東西的器皿,前面我們提到的數(shù)組便是容器的一種,容器的概念在JAVA中便可以理解為用來(lái)存儲(chǔ)其它對(duì)象的器皿。本篇就讓我們一起來(lái)認(rèn)識(shí)一下JAVA為我們提供的容器類。

 1、容器API:

  J2SDK提供的容器API位于java.util包內(nèi),容器API的類圖結(jié)構(gòu)如下圖所示:

   

 2、JAVA容器的組成:

  Collection接口——定義了存取一組對(duì)象的方法,其子接口Set和List分別定義了存取方式。Set中的數(shù)據(jù)對(duì)象沒(méi)有順序但不可以重復(fù);List中的對(duì)象有順序且可以重復(fù),List又被細(xì)分為L(zhǎng)inkedList和ArrayList,從名字上應(yīng)該可以看出它的不同,LinkedList以鏈表的方式來(lái)存儲(chǔ)數(shù)據(jù),ArrayList則以數(shù)組的方式來(lái)存儲(chǔ)數(shù)據(jù)。說(shuō)完了Collection接口,下面我們看一下Map接口,Set和List都是單值存儲(chǔ),而Map則提供的是一種鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),鍵和值之間一一映射。

 3、Collection接口定義的方法:

  int size():容器中對(duì)象的數(shù)目

  boolean isEmpty():是否為空

  void clear():清空

  boolean contains(Object element):是不是包含element對(duì)象

  boolean add(Object element):添加element的對(duì)象

  boolean remove(Object element):移除element對(duì)象

  Iterator iterator():返回一個(gè)Iterator對(duì)象,用于遍歷容器中的對(duì)象

  bollean containsAll(Collection c):是否包含c容器中的所有對(duì)象

  boolean addAll(Collection c):把c容器中的所有對(duì)象添加到容器中

  boolean removeAll(Collection c):從容器中移除C容器中存在的所有對(duì)象

  boolean retainAll(Collection c):求當(dāng)前的集合類與C容器的交集

  Object[] toArray():把容器中的所有對(duì)象轉(zhuǎn)換到對(duì)應(yīng)的數(shù)組中

 4、Iterator接口:

  所有實(shí)現(xiàn)了Collection接口的容器都有一個(gè)iterator方法,用于返回一個(gè)實(shí)現(xiàn)了Itertaor的對(duì)象。Iterator對(duì)象稱為迭代器,用于方便的實(shí)現(xiàn)對(duì)容器中元素的遍歷。

 5、Iterator接口的方法:

  boolean hasNext():判斷游標(biāo)右邊是否有元素

  Object next():返回游標(biāo)右邊的元素,并將游標(biāo)移動(dòng)到下一個(gè)位置。

  void remove():刪除游標(biāo)左邊的元素,并將游標(biāo)移動(dòng)到下一個(gè)位置,該方法一次只能執(zhí)行一次

public class Iter {    /**     * @param Interator接口     */    public static void main(String[] args) {        Collection coll = new HashSet();        coll.add(new Integer(1));        coll.add(new Integer(2));        coll.add(new Integer(3));        Iterator it = coll.iterator();        while(it.hasNext()){//判斷下一位置是否為空            Integer i = (Integer) it.next();            if(!i.equals(new Integer(1))){                System.out.PRintln(i);            }else{                it.remove();//移除            }        }    }}

 6、增強(qiáng)的for循環(huán):

  JAVA SDK1.5新增的一個(gè)方法,對(duì)于遍歷array或Collection的時(shí)候相當(dāng)簡(jiǎn)便。缺陷在于對(duì)于數(shù)組元素不能方便的訪問(wèn)下標(biāo)值;對(duì)于集合與Iterator相比不能方便的刪除容器中的元素。結(jié)論:除了簡(jiǎn)單的遍歷和讀取其中的內(nèi)容外,不建議使用增強(qiáng)的for循環(huán)。使用方法:

public class test {    /**     * @param 增強(qiáng)for循環(huán)     */    public static void main(String[] args) {        Collection<String> coll = new ArrayList<String>();        coll.add(String.valueOf("a"));        coll.add(String.valueOf("b"));        coll.add(String.valueOf("c"));        for(String str : coll){            System.out.println(str);        }    }}

 7、Set接口:

  Set接口是Collection接口的子接口,Set接口沒(méi)有提供額外的方法,但實(shí)現(xiàn)了Set接口的容器類中的元素是沒(méi)有順序,并且不可以重復(fù)的。Set容器類似于數(shù)學(xué)中集合的概念,J2SDK API中所提供的Set容器類有HashSet和TreeSet等。

public class test {    /**     * @param Set接口     */    public static void main(String[] args) {        Collection coll = new HashSet();        coll.add("hello");        coll.add("Word");        coll.add(new Integer(100));        System.out.println(coll);    }}

 8、List接口:

  List接口是Collection接口的子接口,List容器的中的元素沒(méi)有順序,可以重復(fù)。List容器中的元素都對(duì)應(yīng)一個(gè)整型序號(hào)記載著其在容器中的位置。J2SDK API中所提供的List容器類有ArrayList和LinkList等。

 9、常用方法:

  void sort(List):對(duì)List中的元素進(jìn)行排序

  void shuffle(List):對(duì)List中的元素進(jìn)行隨機(jī)排序

  void reverse(List):對(duì)List中的元素進(jìn)行逆襲排序

  void fill(List, Object):用一個(gè)特定的對(duì)象重寫List容器

  void copy(List dest, List src):將src容器中的元素拷貝到dest容器中

  int binarySearch(List, Object):對(duì)順序的List容器,采用折半查找法尋找特定的對(duì)象

public class test {    /**     * @param List接口     */    public static void main(String[] args) {        List l1 = new LinkedList();        List l2 = new LinkedList();        for(int i=0; i<5; i++){            l1.add(i+1);        }        for(int i=0; i<5; i++){            l1.add('a');        }        System.out.println(l1);//原始順序        Collections.shuffle(l1);//隨機(jī)排序        System.out.println(l1);        Collections.reverse(l1);//倒序排序        System.out.println(l1);        Collections.sort(l1);//排序            System.out.println(l1);        System.out.println(Collections.binarySearch(l1, 3));//折半查找        Collections.copy(l2, l1);//拷貝        System.out.println(l2);            }}

 10、Comparable接口:

  List容器中的元素可以進(jìn)行排序,那么它是根據(jù)什么進(jìn)行的排序呢?所有可以進(jìn)行排序的類都實(shí)現(xiàn)了java.lang.Comparable接口,Comparable接口只有一個(gè)方法:public int CompareTo(Object obj);方法。返回值:0代表this==obj;正數(shù)代表this>obj;負(fù)數(shù)代表this<obj。實(shí)現(xiàn)了Comparable接口的類通過(guò)實(shí)現(xiàn)CompareTo方法從而定義該類對(duì)象的排序方法。對(duì)姓名排序的例子:

public class Name implements Comparable{    /**     * @param Comparable接口     */    private String lastName;    private String fastName;        public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }    public String getFastName() {        return fastName;    }    public void setFastName(String fastName) {        this.fastName = fastName;    }    public int compareTo(Object arg0) {        Name name = (Name)arg0;         int lastCmp = lastName.compareTo(name.lastName);        return (lastCmp!=0 ? lastCmp : fastName.compareTo(name.fastName));    }}

 11、Map接口:

  實(shí)現(xiàn)了Map接口的類用來(lái)存儲(chǔ)鍵--值對(duì),Map中存儲(chǔ)的值通過(guò)鍵來(lái)標(biāo)識(shí),故而Map中的鍵不能重復(fù)。

 12、Map常用方法:

  Object put(Object key, Object value):添加元素

  Object get(Object key):取出鍵值key對(duì)應(yīng)的value值

  Object remove(Object key):移除鍵值key對(duì)應(yīng)的value值

  boolean containsKey(Object key):判斷Map容器中是否存在鍵值key

  boolean containsValue(Object value):判斷Map容器中是否存在value值

  int size():返回Map容器的長(zhǎng)度

  boolean isEmpty():判斷Map容器是否為空

  void clear():清空Map容器

  對(duì)于JAVA容器這一章就總結(jié)到這里,對(duì)于自動(dòng)打包和解包、泛型,由于文字描述的局限,就不再這里討論了,如果你有好的理解,還望留言討論。

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湟中县| 云霄县| 屏山县| 大余县| 铁岭县| 房产| 双城市| 武川县| 吉木萨尔县| 德保县| 西乡县| 寻甸| 阳城县| 安化县| 温宿县| 察哈| 砚山县| 浦城县| 临夏市| 吴川市| 青岛市| 克拉玛依市| 合肥市| 绥芬河市| 阳城县| 民丰县| 临漳县| 清丰县| 平安县| 仙桃市| 新乡市| 观塘区| 澳门| 承德市| 红安县| 广宗县| 正阳县| 宜川县| 宜川县| 罗江县| 宾阳县|