集合的數據結構
數據結構就是內存中保存輸出數據的形式,不一樣的數據結構會有不一樣的特徵。
堆棧結構:先進後出 表明類(stack);應用場景:java中的方法運行時所佔用的空間就是這種結構。
隊列結構:先進先出 表明類(Queue);應用場景:凡是須要排隊的地方都可使用。
數組結構:內容的賦值(增刪慢、查詢快)ArrayList;應用場景:容器的查詢次數多,修改次數少的時候可使用;
鏈表結構:呈現鏈式連接(查詢慢,增刪快) 表明類:LinkedList 應用場景:增刪多,查詢少的地方可使用。
Set集合:不包含重複元素的collectipon,更確切的說,set不包含知足e1.equals(e2)的元素對e1和e2.而且最多包含一個null元素。
在set接口下有不少子類,經常使用的子類,有兩個:HashSet、LinkedHast
上述兩個集合的數據結構中都包含hash表結構;
特徵:在判斷元素是否重複的時候,會先判斷元素的hash值;若是hash值一致的狀況下,再次判斷equals方法;java
hacode方法
自定義數據類型,必須重寫equals和hashCode方法,缺一不可!數組
HashSet集合的使用
Set集合的特色:不能夠存放重複的元素;無序(無索引,不能保證存與去的順序一致)、最多隻能存放一個null值。
LinkedHashSet集合
linkedHastSet屬於Hash子類,能夠保證存取位置一致。
HashSet與list判斷元素是否重複的規則:
調用參數對象的hashCode方法,獲得hash值;若是hash值與集合中已經存在的任何一個對象的hash值不一致時,直接返回false;
若是參數對象的hash值與集合中其中一個對象的hash值一致時,須要再次使用equals方法確認,若是equals方法獲得true,說明兩個對象一致;若是equals方法獲得false,說明兩個方法不相等;數據結構
HastSet的Contains方法:
比較的時候,直接經過參數對象 的hash值比較一次,再經過equals方法再確認一次便可;
list的contais方法:
比較的時候,按照比較的順序逐次與參數比較,值到比完或比對成爲止,效率低!code
MAP對象
特色:一、map集合中的鍵不容許重複。二、每一個鍵最多隻能映射一個值。三、null也能夠做爲鍵和值使用。四、Map集合中值都是以鍵值對的形式存在,所以建立對象的時候,須要傳遞兩個參數的值
MAP集合的常見子類
一、hashMap;二、LinkedHashMap(是hashMap的子類,能夠保證存值和取值的順序一致)
HashMap的構造方法和經常使用方法
構造:空參構造和傳遞一個map集合的構造
經常使用方法:
put(K,V)添加鍵值對,若map中已經包含了指定的key時,會使用新得value覆蓋原來的value值。
remove(K)移除
get(K)經過鍵查詢值
clear()、containsKey()、containsValue()、size()、values()獲取全部的value值以單列集合存在等。
HashMap集合迭代方式1-鍵找值;
一、面向map集合對象,獲取map中全部的鍵組成的一個單列集合,這個單列集合是Set;(Map的keySet方法)
二、使用加強for迭代set集合,能夠獲取每個key的值;(加強for)
三、面向map集合,根據每個key的值從map中獲取對應的value的值;(map的get方法)
HashMap集合迭代方式2--鍵值對對象
一、面向map集合,獲取全部的鍵值對對象組成的一個set集合;(map的entryset方法)
二、使用加強for迭代set集合,獲取每個鍵值對對象;(加強for)
三、面向鍵值對對象分別獲取key和value;(Entry的getKey和getValue)
涉及到的API:map中的方法(entrySet方法)
LinnkedHashMap
HashMap存放自定義類型的key
結論:須要對Key的數據類型進行重寫hahCode方法和equals方法。
可變參數:可變參數的實質就是一個數組,可使用操做數組的方式來操做可變參數;可變參數只容許在方法的參數列表中使用。
格式:
修飾符 返回值類型 方法名(數據類型...參數名){
}
可變參數的好處:
一、可變參數是jdk1.5以後出現的新特性;
二、可變參數的實質就是數組,不能與數組的方法造成重載;
三、若是參數列表中出現多個形參時,可變參數必須放在最後邊;
好處:對於方法的調用者能夠傳用任意多個參數!
ProPerties集合
ProPerties是hashTable的子類,是map的孫子類;map中的方法,properties均可以直接使用,不建議使用,建議使用properties自身特有的方法;
特色:一、屬於雙列集合;二、沒有泛型,鍵與值得數據類型都是String;三、有與IO流相互結合的方法,能夠將集合中的數據保存到硬盤上,也能夠從硬盤上將數據讀取到集合中;
properties集合的構造方法和經常使用方法
構造:空參構造和一個帶有指定默認值的空屬性列表。
經常使用方法:
setProperty:存值的方法;getProperty(String Key,String values):讀值的方法。
StringPropertyNames方法,遍歷
properties與IO流相結合的方法
將集合中的數據保存到硬盤上。
ongoing硬盤上將數據讀取到properties索引