1. 程式人生 > 實用技巧 >Java基礎學習--集合

Java基礎學習--集合

            集合

List集合的特點

1.有序的資料集合,儲存元素和取出元素的順序是一致的(儲存123,取出123)

2.有索引,包含了一些帶索引的方法

3.允許儲存重複的元素


List介面中帶索引的方法

  1. add
  2. get:返回集合中指定位置的元素
    1. 3.remove:一處列表中指定位置的元素
    2. 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 集合特點:
底層是一個雜湊表(陣列+連結串列/紅黑樹)+連結串列(記錄元素的儲存順序);
有序的儲存,但也不允許重複。