Java基礎學習--集合
阿新 • • 發佈:2021-01-19
集合
List集合的特點
1.有序的資料集合,儲存元素和取出元素的順序是一致的(儲存123,取出123)
2.有索引,包含了一些帶索引的方法
3.允許儲存重複的元素
List介面中帶索引的方法
- add
- get:返回集合中指定位置的元素
- 3.remove:一處列表中指定位置的元素
- 4.set:用指定元素替換集合中的指定位置的元素
注意
操作索引時候一定要放置索引越界異常
遍歷元素的方法 get()
普通for迴圈
迭代器迴圈
增強for迴圈
package com.zd; import java.util.LinkedList; /* LinkedList集合的特點: 1.底層是一個連結串列結構,查詢慢,增刪快 2.裡面包含大量處理首尾元素的方法 注意:使用LinkedList集合特有的方法,不可以使用多型 */ public class testLinklist { public static void main(String[] args) { show01 (); show02 (); } private static void show01() { //建立LinkedList集合物件 LinkedList<String> linklist = new LinkedList<> (); linklist.add ( "1" ); linklist.add ( "2" ); linklist.add ( "3" ); System.out.println (linklist ); //插入元素的開頭 linklist.addFirst ( "12313" ); //插入元素的結尾,相當於add linklist.addLast ( "last" ); System.out.println (linklist ); } private static void show02(){ //建立LinkedList集合物件 LinkedList<String> linklist = new LinkedList<> (); linklist.add ( "1" ); linklist.add ( "2" ); linklist.add ( "3" ); System.out.println (linklist ); //獲取第一個元素 String first = linklist.getFirst (); System.out.println (first ); //獲取最後一個元素 String last= linklist.getLast (); System.out.println (last ); } }
List集合的實現類
ArrayList和LinkedList是面試時候經常出現的
他們之間的區別和練習就是,
ArrayList:原型是陣列,多執行緒實現,查詢快增刪慢,陣列長度固定,每次增刪都需要建立新的陣列
LinkedList:原型是連結串列實現,增刪快,查詢慢,多執行緒實現,連結串列結構,增加刪除元素對整體結構本身不造成影響
雜湊值:是一個十進位制的整數,由系統隨機給出(是一個邏輯地址,並不是真實的實體地址)
在Object方法,可以獲取物件的雜湊值,物件的地址值就是用的hash值。
hashCode();
HashSet集合的資料結構(雜湊表)
jdk1.8之前:雜湊表=陣列+連結串列
jdk1.8之後:
雜湊表=陣列+連結串列
雜湊表=陣列+紅黑樹(提高查詢的效率)
雜湊表的特點:速度快
儲存資料到元素中,先計算元素的雜湊值
如果連結串列的長度超過了八位,那麼就會把連結串列轉換為紅黑樹。
LinkedHashSet 繼承了HashSet
LinkedHashSet 集合特點:
底層是一個雜湊表(陣列+連結串列/紅黑樹)+連結串列(記錄元素的儲存順序);
有序的儲存,但也不允許重複。