1.list
- 帶有索引均是list特性
- ctrl+shift+o導(dǎo)包
- awt是圖形化界面
- remove(index)刪除指定索引元素并返回被刪除元素
- set(index)修改指定元素并返回被修改前的元素
- 迭代器并發(fā)修改
concurrentmodification錯(cuò)誤并發(fā)修改:
在集合遍歷過(guò)程中修改集合長(zhǎng)度造成指針混亂
while (itr.hasNext()) {
itr.next();
arr.add(5);
}
2.存儲(chǔ)結(jié)構(gòu)
- 堆棧:先進(jìn)后出
- 隊(duì)列哪审,先進(jìn)先出
3.存儲(chǔ)特點(diǎn)
- list類(lèi):查找速度塊(內(nèi)存連續(xù))冬竟,但是增刪慢
- 鏈表:內(nèi)存不連續(xù),上一個(gè)數(shù)據(jù)記住下一數(shù)據(jù)地址社证,增刪快,查找慢
- 日常是查找工作較多所以ArrayList使用很多
- linkedlist單向鏈接
4.linklist
- addfrist在頭添加
- addlast尾添加
- getfrist蹂楣,getlast獲取頭尾
- link.isempty ()=link.size()
- removefrist,removelast刪除頭尾肖卧,返回被刪除
5.vector,被廢棄的數(shù)組韭脊,安全線(xiàn)程其中向量枚舉就是iterator
6.set接口
- 不允許重復(fù)元素童谒,僅有迭代器和增強(qiáng)for,沒(méi)有索引沪羔,
- set接口和父類(lèi)collection一樣
7.hashset(set本身依賴(lài)map實(shí)例)
- 不保證set迭代順序但是可存null
- 底層數(shù)據(jù)結(jié)構(gòu)哈希表(hashtable)饥伊,存取均塊,線(xiàn)程不安全
- 本類(lèi)是鏈表數(shù)組結(jié)合體蔫饰,性能和本身長(zhǎng)度成正比琅豆,越長(zhǎng)越慢,加載因子默認(rèn)0.75
- 數(shù)組不夠用就會(huì)擴(kuò)容篓吁,一般擴(kuò)容兩倍以上復(fù)制均耗內(nèi)存多
8.對(duì)象的hash值獲让R颉:hashcode(native方法)
- 哈希值是是否存到set中的判斷
- String重寫(xiě) hashcode
- hashtable存的判斷重復(fù)方法(也就是set類(lèi)判斷重復(fù))
拿到對(duì)象hash值,判斷hash值有沒(méi)有一樣杖剪,
有就繼續(xù)調(diào)用equals方法冻押,equals也相同就判斷重復(fù)不能存
- 判斷重復(fù)自定義對(duì)象Person
重寫(xiě)hashcode:
name.hashcode()+age*55(55是非零任意驰贷,作用是降低重復(fù)率)
重寫(xiě)equals:
null,對(duì)象本身(this)洛巢,Person類(lèi)判斷(instanceof)判斷name和age相等
- linkedhashset 繼承hashset有儲(chǔ)存順序(雙重鏈表)
- contains也在調(diào)用equals括袒,list中add返ture
- hashset中add會(huì)判斷是否重復(fù),重復(fù)就返false
- equals相等則hashcode一定相同稿茉,hashcode相同不一定equals--官方定義