集合學習總結二

2021-08-11 17:32:35 字數 1058 閱讀 9550

hase表原理

簡單的說他是通過一種演算法來計算雜湊值,類似於我們獲取到乙個資料然後給他取餘數 被除數是雜湊表的表長。這樣優勢在於 訪問速度快。但同時有乙個問題就是雜湊衝突。簡單來說就是我們100%9=1 10%=1 這兩個算下來的雜湊值一樣。這時候就需要考慮 怎麼放置資料。

解決雜湊衝突:首先判斷兩個元素是否是同乙個物件。底層比較是通過equal 方法比較的 ,相同的話不會插入到表裡,不同的話 他會有好多種演算法在繼續算出他的雜湊值,其中有一種叫做鏈位址法(拉鍊法) 它類似與鍊錶。前乙個元素裡放著下乙個元素的位址。如下圖:

haseset:內部使用hase表結構 不保證順序,不同步。使用equal 和hasecode 來比較物件是否相同。取出只有迭代器方法

treeset:內部使用二叉樹結構,可以通過實現compareable 介面 實現排序。還可以使用比較器作為treeset 構造引數傳入。

一般集合中儲存的物件覆蓋hashcode 和equal 。

/**

* 物件自然排序 按照年齡排序

*/@override

public int compareto(student o)

int temp = this.age - o.age;

return temp == 0 ? this.stuname.compareto(o.stuname) : temp;

}

hashtable:內部資料結構雜湊表 同步 不允許null 作為key value

hashmap:內部使用也是雜湊表 不同步。允許key 和value 作為null 同步的話需要使用collections.synchronizedmap(map)

treemap:資料結構是二叉樹。不是同步。可以對key 排序

linkedhashmap:資料結構是鍊錶和雜湊表,集合存入和取出順序一直。

Java集合總結(二) Set集合

set集合儲存的元素是沒有順序 且不能重複的。它有三個實現類 hashset treeset enumset 1 hashset hashset按照hash演算法來儲存集合中的元素,因此具有良好的訪問和查詢效能 特點 儲存的特性 hashset判斷兩元素相等的標準 兩個物件通過equals 方法比較...

學習總結 對映集合

對映 對映的組成 鍵 值對 key value 在乙個map中,鍵key是不可以重複的,是唯一的,value是可以重複的,乙個鍵key對應乙個值value 有hashmap,treemap,linkedhashmap三種,特點與set類似 格式 maplove new hashmap jdk6 格式...

集合框架學習總結

集合實際用來儲存物件 object 但需要注意的是,集合存放的實質上是物件的位址。接下來我們先來看一下集合框架圖,如下 同一顏色方框,我將它們視為同一級 首先由上圖確認一下它們的關係 collection 介面 set 介面 儲存元素特點 元素無序,元素不可以重複,與list集合體系本質區別就是無索...