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