java集合collection接口與子接口及實現類

概要

集合概念:像數組一樣是java的一個容器;和數組不同的是數組隻能存同類型的數據,且長度定義之後就不可變,集合不僅,可以存多種類型的數據,而且還提供瞭增、刪、改、查的方法;

集合分類:可以分為單列集合與雙列集合,單列集合指在集合中放單個元素,雙列集合指集合中的元素是以鍵值對的方式存放的。

在Collection接口的兩個重要子接口Set與List接口,實現的子類都是單列集合,通過觀察Collection接口源碼,可以看出它繼承瞭Iterable接口;

1 Collection接口的實現子類特性

  • (1)Collection接口的實現子類可以存放多元素,每個元素可以是Object
  • (2)Collection接口的實現子類,List存放有序,Set存放無序;
  • (3)Collection接口沒有直接子類,都是通過List與Set子接實現的

2 通過實現子類ArrayList體現Collection接口方法

Collection中常用方法如下:

2.1 代碼演示示例

//通過註解抑制編譯警告
@SuppressWarnings({"all"})
public class CollectionMethodDemo {
    public static void main(String[] args) {
//        創建對象
        List arrList = new ArrayList();
//        使用add添加元素
        arrList.add("name");
        arrList.add(15);
    }

}

3 集合的遍歷:①使用Iterator(迭代器)②增強for循環遍歷

  • 1)、Iterator對象稱為迭代器,主要用於遍歷Collection集合中的元素,
  • 2)、所有實現瞭Collection接口的類都有一個iterator()方法,用於返回實現瞭Iterator接口的對象,可以返回一個迭代器
  • 3)、Iterator僅用於遍歷集合,不存放對象;

3.1 代碼示例

public class ArrayListTest {
    public static void main(String[] args) {
    Books book1 = new Books("三國演義",50);
    Books book2 = new Books("紅樓夢",60);
    Books book3 = new Books("西遊記",70);
    Books book4 = new Books("水滸傳",80);
//    創建集合
        List list = new ArrayList<>();
//        添加元素
        list.add(book1);
        list.add(book2);
        list.add(book3);
        list.add(book4);
//        迭代器遍歷集合
        Iterator iterator  = list.iterator();
        while (iterator.hasNext()){
            Object object = iterator.next();
            System.out.println(object);
        }
        System.out.println("======================");
//        增強for遍歷
        for (Object b:list){
            System.out.println(b);
        }
    }
}
class Books{
    private String name;
    private int price;

    public Books() {
    }
    public Books(String name, int price) {
        this.name = name;
        this.price = price;
    }
    /**
     * 獲取
     * @return name
     */
    public String getName() {
        return name;
    }
    /**
     * 設置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 獲取
     * @return price
     */
    public int getPrice() {
        return price;
    }
    /**
     * 設置
     * @param price
     */
    public void setPrice(int price) {
        this.price = price;
    }
    public String toString() {
        return "Books{name = " + name + ", price = " + price + "}";
    }
}

4 List相關解讀

  • 實現瞭List接口的子類都,都是有序的且允許重復;
  • 存入數據與取出的數據順序保持一致,支持索引取(索引從0開始);

5 Set接口分析

  • 1)Set接口創建集合是無序的,沒有索引,
  • 2)不許出現重復元素,最多包含一個null
  • 3)常見的Set接口實現類有,HashSet、TreeSet

Map接口及實現子類

Map子類實現的都是雙列集合

map接口實現類的特點(JDK 8):

  • (1)保存具有映射關系的數據;雙列元素key—-value
  • (2)Map中的key和value可以是任意的引用類型數據,會封裝到HashMap$Node對象
  • (3)Map中的key不允許重復,value可以重復;
  • (4)Map中的key和value都可以為空,但可以隻能有一個null,
  • (5)在Map中常用String類型作為key使用
  • (6)key與value存在一一對應的關系

結語

到此這篇關於java集合collection接口與子接口及實現類的文章就介紹到這瞭,更多相關java collection接口內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: