Collection介面被List介面與Set介面繼承
ArrayList是List介面的實作類別
#ArrayList 類別是一個可以動態修改的陣列,與普通陣列的差異就是它是沒有固定大小的限制,我們可以新增或刪除元素。
ArrayList 繼承了 AbstractList ,並實作了 List 介面。
建立ArrayList物件:
public class List { public static void main(String[] args) { var list = new ArrayList(); } }
在集合中新增資料:
add()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); } }
清除集合資料:
clear()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); list.clear(); System.out.println(list); } }
修改指定索引位置的物件
set()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); list.set(2, "a"); System.out.println(list); } }
HashSet 是基於HashMap 來實現的,是一個不允許重複元素的集合。
HashSet 允許有 null 值。
HashSet 是無序的,也就是不會記錄插入的順序。
HashSet 不是執行緒安全的, 如果多個執行緒嘗試同時修改 HashSet,則最終結果是不確定的。您必須在多執行緒存取時明確同步對 HashSet 的並發存取。
HashSet 實作了 Set 介面。
建立ArrayList物件:
public class Set { public static void main(String[] args) { var set = new HashSet<>(); } }
向集合中新增資料:
add()
集合中的元素不能重複
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); } }
已清除集合資料:
clear()
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); set.clear(); System.out.println(set); } }
刪除指定元素
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); set.remove("a"); System.out.println(set); } }
#1.HashSet 是不重複的而且是無序的! 唯一性保證.重複物件equals方法傳回為true ,重複物件hashCode方法返回相同的整數HashSet其實就是一個HashMap,只是你只能透過Set介面操作這個HashMap的key部分
2.ArrayList是可重複的有序的特點:查詢效率高,增刪效率低輕量級線程不安全。 arraylist:在資料的插入和刪除方面速度不佳,但是在隨意提取方面較快
泛型程式設計(generic programming)是程式設計語言的一種風格或範式。泛型允許程式設計師在強類型程式設計語言中編寫程式碼時使用一些以後才指定的類型,在實例化時作為參數指明這些類型。各種程式設計語言和其編譯器、運行環境對泛型的支援均不一樣。
一般用集合的時候都會用到泛型,泛型就是給集合加一個型別約束。它可以是String、可以是Object 泛型不支援基本型別int,請使用包裝器型別 Integer
建立泛型:
List<String> list = new ArrayList<>();
這樣這個集合裡面只能加String型別。
以上是Java Collection集合的ArrayList和HashSet怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!