大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 什么是Java集合?

什么是Java集合?

更新時間:2021-05-17 16:18:57 來源:動力節點 瀏覽927次

一、集合的由來

通常,我們的Java程序需要根據程序運行時才知道創建了多少個對象。但若非程序運行,程序開發階段,我們根本不知道到底需要多少個數量的對象,甚至不知道它的準確類型。為了滿足這些常規的編程需要,我們要求能在任何時候,任何地點創建任意數量的對象,而這些對象用什么來容納呢?我們首先想到了數組,但是!數組只能存放同一類型的數據,而且其長度是固定的,那怎么辦了?集合便應運而生了。

二、集合是什么?

Java集合類存放在java.util包中,是一個用來存放對象的容器。

注意:

1.集合只能存放對象。比如你存入一個int型數據66放入集合中,其實它是自動轉換成Integer類后存入的,Java中每一種基本數據類型都有對應的引用類型。

2.集合存放的都是對象的引用,而非對象本身。所以我們稱集合中的對象就是集合中對象的引用。對象本身還是放在堆內存中。

3.集合可以存放不同類型,不限數量的數據類型。

三、Java集合框架

首先,我們來看一張圖

發現一個特點,上述所有的集合類,除了map系列的集合,即左邊的集合都實現了Iterator接口。

Iterator是一個用來遍歷集合中元素的接口,主要有hashNext(),next(),remove()三種方法。

它的子接口ListIterator在它的基礎上又添加了三種方法,分別是add(),previous(),hasPrevious()。

從圖中我們可以看到:

1.集合主要分為Collection和Map兩個接口。

2.Collection又分別被List和Set繼承。

3.List被AbstractList實現,然后分為3個子類,ArrayList,LinkList和VectorList。

4.Set被AbstractSet實現,又分為2個子類,HashSet和TreeSet。

5.Map被AbstractMap實現,又分為2個子類,HashMap和TreeMap。

6.Map被Hashtable實現。

四、Iterator迭代器

它是Java集合的頂層接口(不包括map系列的集合,Map接口是map系列集合的頂層接口)

Object next():返回迭代器剛越過的元素的引用,返回值是Object,需要強制轉換成自己需要的類型。

boolean hasNext():判斷容器內是否還有可供訪問的元素。

void remove():刪除迭代器剛越過的元素。

所以除了map系列的集合,我么都能通過迭代器來對集合中的元素進行遍歷。

注意:我們可以在源碼中追溯到集合的頂層接口,比如Collection接口,可以看到它繼承的是類Iterable

public interface Collection<E> extends Iterable<E> {
    //Query Operations
    ...
}

那這就得說明一下Iterator和Iterable的區別:

Iterable:存在于java.util包中。

public interface Iterable<T>{
    /**
    * Returns an iterator over elements of type {@code T}
    *
    * @return an Iterator
    */
    Iterator<T> iterator();
    ...
}

我們可以看到,里面封裝了Iterator接口。所以只要實現了Iterable接口的類,就可以使用Iterator迭代器了。

Iterator:存在于java.util包中。核心的方法next(),hasNext(),remove()。

這里我們引用一個Iterator的實現類ArrayList來看一下迭代器的使用:暫時先不管List集合是什么,只需要看看迭代器的用法就行了

import java.util.*;

public class test{
    public static void main(String[] args) {
        // 產生一個List集合,典型實現為ArrayList。
        List<String> list = new ArrayList<String>();
        /* List list = new ArrayList();結果出錯
        注:test.java使用了未經檢查或不安全的操作。
        注: 有關詳細信息, 請使用 -Xlint:unchecked 重新編譯。
         *這樣的情況下要用泛型,容器里不能放object而是放具體類型。
         */

        //添加三個元素
        list.add("Tom");
        list.add("Bob");
        list.add("Jack");
        //構造List的迭代器
        Iterator it = list.iterator();
        //通過迭代器遍歷元素
        while (it.hasNext()){
            Object obj = it.next();
            System.out.println(obj);
        }
    }
}

五、Collection接口介紹

Collection的作用就是規定了一個集合有哪些基本的操作。

coolection的常規用法

Collection c = new ArrayList();
Iterator it = c.iterator();
while (it.hasNext()){
    Object obj = it.next();
}

這里主要是插入數據,清空數據,是否包含,是否相等,集合里的數據個數和轉化成熟組這幾種操作。

比如:

int size() 獲取元素個數

boolean isEmpty() 是否個數為零

boolean contains(Object element) 是否包含指定元素

boolean add(E element) 添加元素,成功時返回true

boolean remove(Object element) 刪除元素,成功時返回true

Iterator<E> iterator() 獲取迭代器

還有些操作整個集合的方法,比如:

boolean containsAll(Collection<?> c)  是否包含指定集合 c 的全部元素

boolean addAll(Collection<? extends E> c) 添加集合 c 中所有的元素到本集合中,如果集合有改變就返回 true

boolean removeAll(Collection<?> c) 刪除本集合中和 c 集合中一致的元素,如果集合有改變就返回 true

boolean retainAll(Collection<?> c)  保留本集合中 c 集合中兩者共有的,如果集合有改變就返回 true

void clear()  刪除所有元素

還有對數組操作的方法:

Object[] toArray() 返回一個包含集合中所有元素的數組

<T> T[] toArray(T[] a) 返回一個包含集合中所有元素的數組,運行時根據集合元素的類型指定數組的類型

于Collection接口相關還有一個抽象類AbstractCollection:

AbstractCollection是一個抽象類,實現了Collection接口的部分功能,實現了一些最基本的通用操作,把復雜的和業務相關的延遲到子類實現。

在AbstractCollection中,主要實現了contains(), isEmpty(), toArray(), remove(), clear() 這幾個操作。

以上就是動力節點小編介紹的"什么是Java集合?",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 色偷偷亚洲女性天堂 | 国产99视频在线 | 97理论三级九七午夜在线观看 | 丰满放荡岳乱妇91www | 免费看aa | 91热久久免费频精品动漫99 | 青娱乐91 | 国产一区二区三区日韩 | 亚洲精品国自产拍影院 | 欧美洲精品亚洲精品中文字幕 | 天天爱夜夜爽 | 精品国产精品 | 米奇777第四久久久99 | 人人舔人人插 | 一级片在线观看免费 | 99热精品成人免费观看 | 国产专区精品 | 欧美在线一区二区三区 | 欧美日韩综合精品一区二区三区 | 日韩精品成人免费观看 | 成人欧美一区二区三区在线 | 奇米网狠狠 | 久久精品一区二区三区不卡 | 欧美福利视频在线 | 久久99国产视频 | 久久九九免费 | 99精品久久久久久久婷婷 | 毛片不卡一区二区三区 | 国产成人精品在线 | 日本在线毛片视频免费看 | 中文字幕一区二区三区视频在线 | 九9热这里真品 | 中文字幕综合久久久久 | 69做爰视频在线观看 | 色中文字幕在线 | 日韩毛片高清免费 | 狠狠色狠狠色综合婷婷tag | 99re这里只有精品在线观看 | 国产精品欧美亚洲韩国日本99 | 天天躁狠狠躁狠狠躁夜夜躁 | 国内精品久久久久影院亚洲 |