50 說一說Set 的特點,有哪些實現?

2021-10-21 01:48:15 字數 541 閱讀 2022

小景哥哥部落格

set不允許元素重複且無序,常用實現有 hashset、linkedhashset 和 treeset。

hashset通過 hashmap 實現,hashmap 的 key 即 hashset 儲存的元素,所有 key 都使用相同的 value ,乙個名為 present 的 object 型別常量。使用 key 保證元素唯一性,但不保證有序性。由於 hashset 是 hashmap 實現的,因此執行緒不安全。

hashset 判斷元素是否相同時,對於包裝型別直接按值比較。對於引用型別先比較 hashcode 是否相同,不同則代表不是同乙個物件,相同則繼續比較 equals,都相同才是同乙個物件。

linkedhashset繼承自 hashset,通過 linkedhashmap 實現,使用雙向鍊錶維護元素插入順序。

treeset通過 treemap 實現的,新增元素到集合時按照比較規則將其插入合適的位置,保證插入後的集合仍然有序。

簡單的說一說mmap

mmap memory map,就是記憶體對映 簡單的說就是將檔案對映到使用者的位址空間中。這麼做有什麼好處呢?1.傳統檔案訪問方式是,首先用open系統呼叫開啟檔案,然後使用read,write等呼叫進行順序或者隨即的i o.這種方式是非常低效的,每一次i o操作都需要一次系統呼叫.而通過mmap...

說一說JS的IIFE

iife immediately invoked function expression,意為立即呼叫的函式表示式,也就是說,宣告函式的同時立即呼叫這個函式。對比一下,這是不採用iife時的函式宣告和函式呼叫 function foo foo 下面是iife形式的函式呼叫 functionfoo 函...

說一說JS的IIFE

iife immediately invoked function expression,意為立即呼叫的函式表示式,也就是說,宣告函式的同時立即呼叫這個函式。對比一下,這是不採用iife時的函式宣告和函式呼叫 function foo window console.log a 2 js的模組就是函式...