C HashSet 用法 Hashtable用法

2022-04-11 15:02:56 字數 3430 閱讀 5280

hashset 用法

.net 3.5在system.collections.generic命名空間中包含乙個新的集合類:hashset。這個集合類包含不重複項的無序列表。這種集合稱為「集(set)」。集是乙個保留字,所以該類有另乙個名稱hashset。這個名稱很容易理解,因為這個集合基於雜湊值,插入元素的操作非常快,不需要像list類那樣重排集合。

hashset類提供的方法可以建立合集和交集。

建立hashset:

hashseths = new hashset();

hashsetcompanyteams = new hashset() ;

hashset改變集的值的方法:

add(): 如果某元素不在集合中,add()方法就把該元素新增到集合中。在其返回值boolean中,返回元素是否新增的資訊

eg:if (!companyteams.add("mclaren"))

console.writeline("mclaren was already in this set");

clear():方法clear()刪除集合中的所有元素

eg: companyteams.clear();

remove():remove()方法刪除指定的元素

eg: companyteams.remove("mclaren");

removewhere(): removewhere()方法需要乙個predicate委託作為引數。刪除滿足謂詞條件的所有元素

predicate 可以委託給乙個函式或者乙個拉姆達表示式:

委託給拉姆達表示式:

eg:companyteams.removewhere(company => else });

委託給乙個函式:

eg:companyteams.removewhere(checklength);

public bool checklength(string company)

copyto(): copyto()把集合中的元素複製到乙個陣列中

eg:string strarray = new string[companyteams.count];

companyteams.copyto(strarray);

foreach (string str in strarray)

exceptwith():exceptwith()方法把乙個集合作為引數,從集中刪除該集合中的所有元素

eg:companyteams.exceptwith(privateteams);

foreach (var str in companyteams)

unionwith():unionwith()方法把傳送為引數的集合中的所有元素新增到集中

eg:companyteams.unionwith(privateteams);

foreach (var str in companyteams)

hashset僅返回集的資訊、不修改元素的方法。

contains():如果所傳送的元素在集合中,方法contains()就返回true

eg:if (companyteams.contains("bmw"))

issubsetof():如果引數傳送的集合是集的乙個子集,方法issubsetof()就返回true

eg:if (traditionalteams.issubsetof(companyteams))

issupersetof():如果引數傳送的集合是集的乙個超集,方法issupersetof()就返回true

eg:if (companyteams.issupersetof(traditionalteams))

overlaps():如果引數傳送的集合中至少有乙個元素與集中的元素相同,overlaps()就返回true

eg:traditionalteams.add("williams");

if (privateteams.overlaps(traditionalteams))

setequals():如果引數傳送的集合和集包含相同的元素,方法setequals()就返回true

hashtable用法:

一、雜湊表(hashtable)簡述

在.net

framework中,hashtable是system.collections命名空間提供的乙個容器,用於處理和表現類似key/value的鍵值對,其中key通常可用來快速查詢,同時key是區分大小寫;value用於儲存對應於key的值。hashtable中key/value鍵值對均為object型別,所以hashtable可以支援任何型別的key/value鍵值對.

二、雜湊表的簡單操作

在雜湊表中新增乙個key/value鍵值對:hashtableobject.add(key,value);

在雜湊表中去除某個key/value鍵值對:hashtableobject.remove(key);

從雜湊表中移除所有元素:                hashtableobject.clear();

判斷雜湊表是否包含特定鍵key:         hashtableobject.contains(key);

hashtable ht = new hashtable(); //建立乙個hashtable例項

ht.add("e", "e");//新增key/value鍵值對

ht.add("a", "a");

ht.add("c", "c");

ht.add("b", "b");

string s = (string)ht["a"];

if (ht.contains("e")) //判斷雜湊表是否包含特定鍵,其返回值為true或false

console.writeline("the e key:exist");

ht.remove("c");//移除乙個key/value鍵值對

console.writeline(ht["a"]);//此處輸出a

ht.clear();//移除所有元素

console.writeline(ht["a"]); //此處將不會有任何輸出

三、遍歷雜湊表

遍歷雜湊表需要用到dictionaryentry object,**如下:

foreach (dictionaryentry de in ht) //ht為乙個hashtable例項

四、對雜湊表進行排序

對雜湊表進行排序在這裡的定義是對key/value鍵值對中的key按一定規則重新排列,但是實際上這個定義是不能實現的,因為我們無法直接在hashtable進行對key進行重新排列,如果需要hashtable提供某種規則的輸出,可以採用一種變通的做法:

arraylist akeys = new arraylist(ht.keys); //別忘了匯入system.collections

akeys.sort(); //按字母順序進行排序

foreach (string skey in akeys)

C HashSet 簡單使用

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

C HashSet集合型別使用介紹

1.hashset集合 使用hashset可以提高集合的運算。使用hashset集合不自帶排序方法,如果需要排序的需求可以參考使用list集合配合sort方法。hashset的優勢在與運算快,作為一種存放在記憶體的資料,可以很快的進行設定和取值的操作。hashset無法向裡面新增重複的資料,避免新增...

C HashSet類3個破壞性方法例項解析

雜湊表 hash table 也叫雜湊表 是根據關鍵字 key value 而直接訪問在記憶體儲存位置的資料結構。它通過計算乙個關於鍵值的函式,將所需查詢的資料對映到表中乙個位置來訪問記錄,也就是說,雜湊查表儲存資料時 就是使用 對映函式將鍵對映成索引 這加快了查詢速度。這種對映函式 稱作雜湊函式 ...