new hashmap()時,不會分配陣列空間,在第一次新增值時會初始化陣列tab,預設大小16,載入因子0.75,當map中物件個數到達閾值(預設基礎閾值threshold=16*0.75)進行陣列按threshold=threshold << 1兩倍擴容
int index =
(n -1)
& hash;
// 物件節點所在陣列下標
存放數字時無序,不可重複key值
底層是雜湊表的資料結構,如下。這裡提一下,hashmap在jdk1.8引入了紅黑樹結構
hashset是基於hashmap實現的,可以把它當成乙個value為空的hashmap,是對hashmap的封裝和利用。實現set介面,按物件儲存,按儲存物件計算hash值,要全部迭代才能一一讀出物件。
存放數字時無序,不可重複值
底層資料結構與hashmap一致
執行緒不安全
實現map介面,按鍵值對儲存,按鍵計算hash值,可直接用key值獲取value物件,比較方便
new hashtable()時,會分配陣列空間tab,預設大小11,載入因子0.75
底層是雜湊表的資料結構
底層資料結構與hashmap一致
在涉及修改的方法上加上了synchronized關鍵字,執行緒安全
實現list介面,存放資料無序
預設1.5倍擴容
oldcapacity +
(oldcapacity >>
1)
底層資料結構為陣列執行緒不安全
stack就是把vector陣列封裝成棧,關鍵操作加上了synchronized,執行緒安全
vector底層資料結構為陣列,與arraylist基本一致,關鍵修改操作加上了synchronized,執行緒安全
vector在未指定增長因子capacityincrement時 是1倍擴容
oldcapacity +
((capacityincrement >0)
? capacityincrement : oldcapacity)
資料集合的基本介面有兩種,collection和map。實現collection介面的子介面有set,list,queue,他們的實現類應該很清楚了,是我們常用的hashset,arraylist等,collection是它們的公共介面。而這裡想提到的是collection中的三個易混淆方法,用於集合的交並差集,retainall,containsall和removeall:
boolean retainall(collection> c)
:呼叫此方法除去collection中不存在於c中的元素。換句話說,如果collection中的元素在c中沒有找到,則會去掉collection中的這一元素,並且返回true(collection被改變則會返回true);如果collection中的所有元素在c中都可以找到,則不會改變collection並且返回false。這裡也就是相當於乙個另類的求兩個集合的交集。
例如:
c1: 1,2,2
c2: 1,2
c1.retainall(c2);//這裡會返回false,因為c1中的元素在c2中都存在,不需要改變,則返回false
boolean containsall(collection> c)
:呼叫此方法判斷collection是否包含c中的所有元素
boolean removeall(collection> c)
:呼叫此方法去掉所有collection中存在於c中的元素,和retainall差不多,如果colletion沒有改變,則返回false,否則返回true。這裡也就是相當於乙個另類的求兩個集合的差集。
例如:
c1: 1,2,2,3
c2: 1,2
c1.removeall(c2);//這裡會返回true,因為c1中的元素在c2中都存在,c1中的元素除了3之外會被全部移除,c1最後輸出只有3
Java中常見資料轉型
1.int short exp short shortvar 0 int intvar 0 shortvar short intvar 2.short int exp short shortvar 0 int intvar 0 intvar shortvar 3.int string exp int...
常見資料探勘分析方法介紹
引自 itongji.cn 下面介紹十種資料探勘 data mining 的分析方法,以便於大家對模型的初步了解,這些都是日常挖掘中經常遇到的演算法,希望對大家有用!甚至有資料探勘公司,用其中的一種演算法就能獨步天下 1 基於歷史的mbr分析 memory based reasoning mbr 基...
常見資料庫的分析
現在公司中常用的資料庫有以下幾種 1 access 不常用 access是一種桌面資料庫,只適合資料量少的應用,或者是單機的程式,這樣子訪問的效率特別高。access資料庫有一定的極限,當資料量達到100m的時候,會出現伺服器假死,或者消耗掉伺服器的記憶體導致伺服器崩潰。2 sql server 大...