1:list的子類
(1)list的子類特點
arraylist:
底層資料結構是陣列,查詢快,增刪慢
執行緒不安全,效率高
vector:
底層資料結構是陣列,查詢快,增刪慢
執行緒安全,效率低
linkedlist:
底層資料結構是鍊錶,查詢慢,增刪快
執行緒不安全,效率高
(2)arraylist
沒有特有功能需要學習
案例a:arraylist儲存字串並遍歷:
b:arraylist儲存自定義物件並遍歷:
有特有功能
a:新增
public void addelement(e obj)
--add()
b:獲取
public e elementat(int index)
--get()
public enumerationelements()
-- iterator()
(4)linkedlist
linkedlist的特有功能:
a:新增功能
public void addfirst(object e)
public void addlast(object e)
b:獲取功能
public object getfirst()
public obejct getlast()
c:刪除功能
public object removefirst()
public object removelast()
2:泛型
(1)泛型概述
是一種把明確型別的工作推遲到建立物件或者呼叫方法的時候才去明確的特殊的型別。
(2)格式:
《資料型別》
注意:該資料型別只能是引用型別。
(3)好處:
a:把執行時期的問題提前到了編譯期間
b:避免了強制型別轉換
c:優化了程式設計,解決了黃色警告線問題,讓程式更安全
(4)泛型的前世今生
a:泛型的由來
object型別作為任意型別的時候,在向下轉型的時候,會隱含乙個轉型問題
b:泛型類
c:泛型方法
d:泛型介面
e:泛型高階萬用字元
?? extends e
? super e
(5)我們在**使用呢?
一般是在集合中使用。
3:增強for迴圈
(1)是for迴圈的一種
(2)格式:
for(元素的資料型別 變數名 : 陣列或者collection集合的物件)
(3)好處:
簡化了陣列和集合的遍歷
(4)弊端
增強for迴圈的目標不能為null。建議在使用前,先判斷是否為null。
增強for案例:
4:靜態匯入
(1)可以匯入到方法級別的匯入
(2)格式:
import static 包名....類名.方法名;
(3)注意事項:
a:方法必須是靜態的
b:如果多個類下有同名的方法,就不好區分了,還得加上字首。
所以一般我們並不使用靜態匯入,但是一定要能夠看懂。
5:可變引數
(1)如果我們在寫方法的時候,引數個數不明確,就應該定義可變引數。
(2)格式:
修飾符 返回值型別 方法名(資料型別... 變數) {}
注意:a:該變數其實是乙個陣列名
b:如果乙個方法有多個引數,並且有可變引數,可變引數必須在最後
(3)arrays工具類的乙個方法
aslist()把陣列轉成集合。
注意:這個集合的長度不能改變。
java基礎之集合
1.collectiton 單列儲存集合 list 元素是有序的,元素可以重複。因為該集合體系有索引 arraylist 底層的資料結構使用的是陣列結構 特點 陣列元素查詢很快,但是增刪很慢,因為增刪乙個元素,陣列後面的其他元素都需要變動,執行緒不同步 linklist 底層的資料結構使用的是鍊錶資...
java基礎之集合
集合的型別與各自的特性 collection 單列集合 list 有儲存順序,可重複 arraylist 陣列實現,查詢快,增刪慢由於是陣列實現,在增和刪的時候會牽扯到陣列增容,以及拷貝元素,所以慢。陣列是可以直接按索引查詢,所以查詢時較快。linkedlist 鍊錶實現,增刪快,查詢慢由於鍊錶實現...
java基礎之集合
集合容器因為內部的資料結構不同,有多種具體容器。不斷的向上抽取,就形成了集合框架。框架的頂層collection介面 collection的常見方法 1.新增 boolean add object obj boolean addall collection coll 2.刪除 boolean rem...