1. 程式人生 > >Java集合框架的介面和類層次關係結構圖

Java集合框架的介面和類層次關係結構圖

集合框架中的核心介面 

介面

說明

實體類

Collection

一種基本介面,它定義了一些普通操作,通過這些操作,可以將一個物件集合當作一個獨立單元來對其進行存放和處理

Set

Set介面擴充套件了Collection介面,用來提供集合的維護(該集合中的元素以某一排列順序儲存)所需的功能

HashSet

LinkedHashSet

SortedSet

SortedSet介面擴充套件了Set介面,用來提供集合的維護(該集合中的元素以某一排列順序儲存)所需的功能

TreeSet

List

List介面擴充套件了Collection介面,用來存放某個元素序列

ArrayList

Vector

LinkedList

Map

一種基本介面,定義了用來實現鍵/值(key-value)對映關係維護的操作

HashMap

Hashtable

LinkedHashMap

SortedMap

針對以鍵序排列存放其對映關係的對映,該介面擴充套件了Map介面

TreeMap

集合及對映實現類表

實體集合/對映

介面

重複項

有序/排序

元素呼叫方法

實現類資料結構

HashSet

Set

元素唯一

無順序

equals()、hashCode()

Hash表

LinkedHashSet

Set

元素唯一

插入排序

equals()、hashCode()

Hash表和雙向連結串列

TreeSet

SortedSet

元素唯一

排序

equals()、compareTo()

平衡樹

ArrayList

List

可以重複

插入排序

equals()

可調大小陣列

LinkedList

List

可以重複

插入排序

equals()

連結串列

Vector

List

可以重複

插入排序

equals()

可調大小陣列

HashMap

Map

鍵唯一

無順序

equals()、hashCode()

Hash表

LinkedHashMap

Map

鍵唯一

鍵插入順序/條目訪問順序

equals()、hashCode()

Hash表和雙向連結串列

Hashtable

Map

鍵唯一

無順序

equals()、hashCode()

Hash表

TreeMap

SortedMap

鍵唯一

鍵序排列

equals()、compareTo()

平衡樹

ollection和Collections的區別

首先要說的是,"Collection" 和 "Collections"是兩個不同的概念;

如下圖所示,"Collection"是集合類(Collection)的頂級介面,然而”Collections“是一個提供了一系列靜態方法的集合工具類;

Collection的類層次結構圖

Map的類層次結構圖

總結

程式碼示例

複製程式碼
package simplejava;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Q7 {

    public static void main(String[] args) {
        List<String> a1 = new ArrayList<String>();
        a1.add("Program");
        a1.add("Creek");
        a1.add("Java");
        a1.add("Java");
        System.out.println("ArrayList Elements");
        System.out.print("\t" + a1 + "\n");
         
        List<String> l1 = new LinkedList<String>();
        l1.add("Program");
        l1.add("Creek");
        l1.add("Java");
        l1.add("Java");
        System.out.println("LinkedList Elements");
        System.out.print("\t" + l1 + "\n");
         
        Set<String> s1 = new HashSet<String>(); // or new TreeSet() will order the elements;
        s1.add("Program");
        s1.add("Creek");
        s1.add("Java");
        s1.add("Java");
        s1.add("tutorial");
        System.out.println("Set Elements");
        System.out.print("\t" + s1 + "\n");
         
        Map<String, String> m1 = new HashMap<String, String>(); // or new TreeMap() will order based on keys
        m1.put("Windows", "2000");
        m1.put("Windows", "XP");
        m1.put("Language", "Java");
        m1.put("Website", "programcreek.com");
        System.out.println("Map Elements");
        System.out.print("\t" + m1);
    }

}
複製程式碼

結果列印:

ArrayList Elements
    [Program, Creek, Java, Java]
LinkedList Elements
    [Program, Creek, Java, Java]
Set Elements
    [tutorial, Creek, Program, Java]
Map Elements
    {Windows=XP, Website=programcreek.com, Language=Java}