Day12-13 Java集合
集合
- 物件的儲存:①陣列(基本資料型別 & 引用資料型別) ②集合(引用資料型別)
陣列儲存資料的弊端:長度一旦初始化以後,就不可變;真正給陣列元素賦值的個數沒有現成的方法可用。
Collection介面
- 方法:
①增加add(Object obj)
addAll(Collection coll)
size() clear() isEmpty();
②刪除remove(Object obj) removeAll(Collection coll)
retainAll(Collection coll) :做交集返回給當前集合
contains(Object obj) : 自定義類需重寫equals方法,判斷物件內屬性值是否相同
containsAll(Collection coll) hashCode()
③ 遍歷iterator() toArray();
增強for迴圈 for(Object i : col)
|------List介面:儲存有序的,可以重複的元素.
---相當於“動態”陣列
---新增的方法:
刪除remove(int index)
修改set(int index,Object obj)
獲取get(int index)
插入add(int index,Object obj)>
|------ArrayList(主要的實現類)
|------LinkedList(更適用於頻繁的插入、刪除操作)
|------Vector(古老的實現類、執行緒安全的,但效率要低於ArrayList)
|------Set介面:儲存無序的,不可重複的元素。
- Set使用的方法基本上都是Collection介面下定義的。
- 新增進Set集合中的元素所在的類一定要重寫equals() 和 hashCode()。要求重寫equals() 和 hashCode()方法保持一致。
- 插入時首先比較hash值,如果在該hash值處沒有元素,直接插入,若hash值相同,比較equals()
1.無序性:無序性!= 隨機性。真正的無序性,指的是元素在底層儲存的位置是無序的。
2.不可重複性:當向Set中新增進相同的元素的時候,後面的這個不能新增進去。
|------HashSet(主要的實現類)
|------LinkedHashSet(是HashSet的子類,當我們遍歷集合元素時,是按照新增進去的順序實現的;頻繁的遍歷,較少的新增、插入操作建議選擇此
|------TreeSet(可以按照新增進集合中的元素的指定屬性進行排序)
要求TreeSet新增進的元素必須是同一個類的!
兩種排序方式:
自然排序:①要求新增進TreeSet中的元素所在的類implements Comparable介面②重寫compareTo(Object obj),在此方法內指明按照元素的哪個屬性進行排序③向TreeSet中新增元素即可。若不實現此介面,會報執行時異常
定製排序:①建立一個實現Comparator介面的實現類的物件。在實現類中重寫Comparator的compare(Object o1,Object o2)方法②在此compare()方法中指明按照元素所在類的哪個屬性進行排序③將此實現Comparator介面的實現類的物件作為形參傳遞給TreeSet的構造器中④向TreeSet中新增元素即可。若不實現此介面,會報執行時異常
要求重寫的compareTo()或者compare()方法與equals()和hashCode()方法保持一致。
Map介面:
- 儲存“鍵-值”對的資料
- key是不可重複的,使用Set存放。value可以重複的,使用Collection來存放
- 一個key-value對構成一個entry(Map.Entry),entry使用Set來存放。
- 操作
新增、修改 put(Object key,Object value)
刪除remove(Object key)
獲取get(Object key)
size() containsKey() containsValue()
keySet() values() entrySet()
|-----HashMap:主要的實現類,可以新增null鍵,null值
|-----LinkedHashMap:是HashMap的子類,可以按照新增進Map的順序實現遍歷
|-----TreeMap:需要按照key所在類的指定屬性進行排序。要求key是同一個類的物件。對key考慮使用自然排序 或 定製排序
|-----Hashtable:是一個古老的實現類,執行緒安全的,不可以新增null鍵,null值不建議使用。
|-----子類:Properties:常用來處理屬性檔案Iterator介面:用來遍歷集合Collection元素
Collections工具類:操作Collection及Map的工具類,大部分為static的方法。
附:Properties的使用
Properties pros = new Properties();
pros.load(new FileInputStream(new File("jdbc.properties")));
String user = pros.getProperty("user");
System.out.println(user);
String password = pros.getProperty("password");
System.out.println(password);
相關文章
- 【Java集合】1 集合概述Java
- 【Java集合原始碼剖析】Java集合框架Java原始碼框架
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- java——集合Java
- java集合Java
- Java集合詳解(一):全面理解Java集合Java
- Java集合(1)一 集合框架Java框架
- Java集合——ArrayListJava
- JAVA_集合Java
- Java 集合框架Java框架
- Java集合:HashMapJavaHashMap
- Java 集合概述Java
- 集合類【Java】Java
- Java集合大全Java
- java集合-ListJava
- Java集合-CollectionJava
- java集合概述Java
- Java新集合Java
- Java 集合 ListJava
- 探究Java集合Java
- JAVA集合-ArrayListJava
- 【java】【集合】TreeSetJava
- Java集合(四)Java
- 六,Java集合Java
- java集合框架Java框架
- 【集合框架】Java集合框架綜述框架Java
- Java集合類初探Java
- Java集合類——MapJava
- Java 集合之ArrayListJava
- Java集合之HashMapJavaHashMap
- Java集合之ArrayListJava
- java集合之CopyOnWriteArrayListJava
- Java集合系列-HashSetJava
- JAVA集合——Map介面Java
- java集合統述Java
- java集合腦圖Java
- java-集合-3Java
- 【Java集合】2 ArrayListJava