List介面派系,資料的儲存結構
阿新 • • 發佈:2018-11-03
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自身的特點:
底層資料結構:雜湊表 (連結串列陣列結合體):儲存取出都比較快,執行緒不安全,執行速度快