1. 程式人生 > >List介面派系,資料的儲存結構

List介面派系,資料的儲存結構

List介面派系,繼承Collection介面,下面有很對實現類,如ArrayList,LinkedList

list是有序集合,怎麼存的,怎麼拿出來,可以對列表中的元素位置進行準確控制(具有索引)

list集合允許儲存重複元素,set不允許

List介面中的抽象方法, 有一部分和他的父介面Collection是一樣的

List介面的自己特有的方法,都帶有索引功能


List集合儲存資料的結構

List介面下有很多結合,它們儲存元素所採用的結構方式是不同的。

資料儲存的常用結構有:堆疊,佇列,陣列,連結串列


重點介紹 ArrayList類——本質:是List介面的大小可變陣列的實現,查詢速度快,增刪速度慢。由於日常開發中使用最多的功能是查詢資料,便利資料,所以ArrayList是最常用的集合。此實現是不同步的,即執行緒不安全的,所以執行速度快。

 


LinkedList——List介面的連結串列實現,增刪速度快,單向鏈。此實現也是不同步的,執行緒不安全的


Vector集合:儲存結構為陣列,實現了可增長的物件陣列,本質與List相同,但有個缺點:它是同步的,執行緒安全的,所以其執行慢,已經被ArrayList取代


set介面——不允許存放重複元素,若輸入重複元素,則只存入一個。set元素取出方式:迭代器和增強for

Hashset集合類介紹——集合分為兩大派系Collection和Map,在HashSet中依賴的是Map例項,HashSet的底層就是Map。HashSet不保證元素的順序

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class HashSetDemo {
    public static void main(String args[]){
        Set<String> set=new HashSet<String>();
        set.add("a");
        set.add("b");
        set.add("n");
        set.add("m");
        set.add("m");//不儲存重複元素
        //迭代器
        Iterator<String> it=set.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        System.out.print("---------------\n");
        //增強for
        for(String s:set){
            System.out.println(s);
        }
    }
}

HashSet自身的特點:

          底層資料結構:雜湊表 (連結串列陣列結合體):儲存取出都比較快,執行緒不安全,執行速度快