後臺學習之路(一):Java基礎回顧
集合:
單列集合:
Collection:單列集合的根介面
List:實現了List介面的集合類,具備的特點:有序、可重複
ArrayList:ArrayList底層是使用Object陣列實現的.特點:查詢速度快,增刪慢.
LinkedList:LinkedList底層是使用了連結串列結構實現的.特點是:查詢速度慢,增刪快.
Vector:底層是使用Object型別的陣列實現的,實現原理和ArrayList是一致的,但其是執行緒安全的,操作效率低.
Set:實現了Set介面的集合類,具備的特點:無序,不可重複.
HashSet:底層是使用雜湊表實現的,特點:存取速度快
HashSet儲存元素的原理:
往HashSet新增元素的時候,首先會呼叫元素的hashCode方法來得到元素的雜湊碼值,然後將雜湊值經過運算算出該元素在雜湊表中的位置.
情況一:如果算出的位置還沒有存在的元素,那麼該元素可以直接新增到雜湊表中.
情況二:如果算出的位置目前已經存在其他的元素,那麼還會呼叫元素的equsals方法再與這個位置上的元素比較一次.
TreeSet:底層是使用二叉樹(紅黑樹)的資料結構實現的.特點:對集合中的元素進行排序儲存.
TreeSet的原理:
1. 往TreeSet新增元素的時候,如果元素具備自然排序的特點,那麼TreeSet會根據元素的自然特性進行排序儲存.
2. --------------------------------------,如果元素不具備自然排序的特點,那麼元素所屬的類就必須實現Compareable介面,將比較的方法放在Compareto方法
3. --------------------------------------------------------------------------------------,元素所屬的類也沒有實現Compareable介面,那麼在建立TreeSet的時候必須要傳入比較器物件
比較器的語法:
Class 類名 implements Comparator{
}
雙列集合:Map: 儲存的物件都是以鍵對值的形式存在的,鍵不可以重複,值可以重複
HashMap:執行緒不安全,存取速度快.底層是以雜湊表實現的.
TreeMap: 紅-黑樹的資料結構,預設對元素進行自然排序(String),如果在比較的時候兩個物件返回值為0,那麼元素重複.
HashTable:底層也是以雜湊表維護的,存取的速度快,儲存元素是無需的.
集合的遍歷方式:
List:使用get方式遍歷
Map:迭代器方式遍歷(使用foreach替代)
使用entrySet方式.
泛型的好處:
1. 把執行時出現的問題提前到了編譯時.
2. 避免了無謂的強制型別轉換.
3. 注意:在泛型中沒有多型的概念,兩邊的型別必須一致.
IO流:
解決裝置與裝置之間的資料傳輸問題.
分類:
輸入流 |
輸出流 |
說明 |
|
位元組流 |
InputStream |
OutputStream |
位元組流是處理位元組的(二進位制) |
字元流 |
Reader |
Writer |
字元流是處理字元的 |
注:這幾個類都是抽象類.