C HashSet集合型別使用介紹

2022-03-22 07:42:28 字數 1899 閱讀 2016

1.hashset集合

使用hashset可以提高集合的運算。使用hashset集合不自帶排序方法,如果需要排序的需求可以參考使用list集合配合sort方法。

hashset的優勢在與運算快,作為一種存放在記憶體的資料,可以很快的進行設定和取值的操作。hashset無法向裡面新增重複的資料,避免新增hashset裡面的資料重複。我們使用hashset常常在集合相加集合相減這些集合與集合之間的操作之中。

使用hashset作為記憶體儲存的快速資料庫,這個需要隨時跟新hashset裡面的資料,因為在hashset中乙個長時間未被訪問的資料,將被系統自動**掉,那麼就會導致失敗,那麼如何才能保證hashset裡面的值是長存在的而且達到不斷的更新裡面的值呢?

首先程式過來訪問我們hashset裡面有沒有需要的資料,如果有我們需要的資料就直接返回給使用者,不用呼叫查詢資料庫的操作。如果hashset裡面沒有我們需要的資料,程式再去查詢一次資料庫是否有該query資料,如果有返回給使用者同時把查詢的結果新增到hashset裡面,這麼做可以一定程度的降低查詢資料庫所帶來的不便,但是不能**,需要進一步提公升效能,可以檢視前面的快取策略使用memcached來提高**查詢和訪問。

1.1.我們要求兩個集合的並集

hashsetnumbers1;

hashsetnumbers2;

//分別進行numbers1和numbers2的值初始化或賦值

numbers1.unionwith(numbers2);//求兩個集合的並集。

1.2.求兩個集合的交集

hashsetnumbers1;

hashsetnumbers2;

//分別進行numbers1和numbers2的值初始化或賦值

numbers1.intersectwith(numbers2);//求兩個集合的交集。

1.3.求兩個集合的差集

hashsetnumbers1;

hashsetnumbers2;

//分別進行numbers1和numbers2的值初始化或賦值

numbers1.exceptwith(numbers2);//求兩個集合的差集。

1.4.求兩個集合的對稱差集

hashsetnumbers1;

hashsetnumbers2;

//分別進行numbers1和numbers2的值初始化或賦值

numbers1.symmetricexceptwith(numbers2);//求兩個集合的對稱差集。

2.hashset常用擴充套件方法

2.1.add,將專案新增到hashset之中。

2.2.clear,清空hashset裡面的值。

2.3.remove,從hashset中移除值。

2.4contains,判斷hashset是否包含指定專案。

2.4equals(object),判斷是否相等。

3.hashset與linq操作

hashset與linq的對等的方法

unionwith       ==>  union

intersectwith  ==>  interset

exceptwith     ==>  except

不提供排序     ==>  distinct

那麼我們已經有很多的集合型別如list,dictionary或hashtable等這些集合型別,我們該如何選定我應該採用的哪乙個集合型別呢?

「如果你必須建立新的設定,或則如果應用程式只需要訪問提供的任務,那麼使用任何的ienumerable集合都已經足夠了。但是,如果應用程式需要訪問其他值,或則不建議不需要建立新的集合,這時可使用hashset.」——摘自msdn

C HashSet 簡單使用

乙個簡單的hashset的例子,介紹其簡單的方法,深入學習可參考微軟 static void main string args hashset hashset2 new hashset hashset hashset1sub new hashset hashset hashsetall new ha...

PLSQL集合型別的使用總結

plsql集合型別的使用總結 在pl sql 中,集合 collection 是一組有序的元素組成的物件,這些元素的型別必須一致。pl sql 將collection 分成3 類,分別為associative arrays 也稱index by tables nested tables varray...

javascript中object型別介紹

constructor 儲存著用於建立當前物件的函式 hasownproperty propertyname 用於檢測給定的屬性在當前物件的例項中 而不是在例項的原型中 是否存在 其中作為引數屬性名的 propertyname 必須以字串形式指定 eg o.hasownproperty name i...