自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

了解C# Hashtable

開發(fā) 后端
本文介紹在C# Hashtable 中用作元素的每一對象必須能夠使用 GetHashCode 方法的實現(xiàn)為其自身生成哈希代碼。

要了解C# Hashtable的使用,我們先來看一個例子!

  1. usingSystem;  
  2. usingSystem.Collections;  
  3.  
  4. namespaceNoSortHashtable  
  5. {  
  6. ///<summary> 
  7. ///SummarydescriptionforClass1.  
  8. ///</summary> 
  9. classClass1  
  10. {  
  11. ///<summary> 
  12. ///Themainentrypointfortheapplication.  
  13. ///</summary> 
  14. [STAThread]  
  15. staticvoidMain(string[]args)  
  16. {  
  17. HashtablehashTable=newHashtable();  
  18.  
  19. hashTable.Add(\"hunan\",\"changsha\");  
  20. hashTable.Add(\"beijing\",\"beijing\");  
  21. hashTable.Add(\"anhui\",\"hefei\");  
  22. hashTable.Add(\"sichuan\",\"chengdu\");  
  23. foreach(stringstrinhashTable.Keys)  
  24. {  
  25. Console.WriteLine(str+\":\"+hashTable[str]);  
  26. }  
  27.  
  28. }  
  29. }  

Hashtable 對象由包含集合元素的存儲桶組成。存儲桶是 Hashtable 中各元素的虛擬子組,與大多數(shù)集合中進(jìn)行的搜索和檢索相比,存儲桶可令搜索和檢索更為便捷。每一存儲桶都與一個哈希代碼關(guān)聯(lián),該哈希代碼是使用哈希函數(shù)生成的并基于該元素的鍵。

哈希函數(shù)是基于鍵返回數(shù)值哈希代碼的算法。鍵是正被存儲的對象的某一屬性的值。哈希函數(shù)必須始終為相同的鍵返回相同的哈希代碼。一個哈希函數(shù)能夠為兩個不同的鍵生成相同的哈希代碼,但從哈希表檢索元素時,為每一唯一鍵生成唯一哈希代碼的哈希函數(shù)將令性能更佳。

在C# Hashtable 中用作元素的每一對象必須能夠使用 GetHashCode 方法的實現(xiàn)為其自身生成哈希代碼。但是,還可以通過使用接受 IHashCodeProvider 實現(xiàn)作為參數(shù)之一的 Hashtable 構(gòu)造函數(shù),為 Hashtable 中的所有元素指定一個哈希函數(shù)。

在將一個對象添加到 Hashtable 時,它被存儲在存儲桶中,該存儲桶與匹配該對象的哈希代碼的哈希代碼關(guān)聯(lián)。在 Hashtable 內(nèi)搜索一個值時,將為該值生成哈希代碼,并且搜索與該哈希代碼關(guān)聯(lián)的存儲桶。

例如,一個字符串的哈希函數(shù)可以采用該字符串中每一字符的 ASCII 代碼并它們添加到一起來生成一個哈希代碼。字符串“picnic”將具有與字符串“basket”的哈希代碼不同的哈希代碼;因此,字符串 “picnic”和“basket”將處于不同的存儲桶中。與之相比,“stressed”和“desserts”將具有相同的哈希代碼并將處于相同的存儲桶中。

Dictionary 類與 Hashtable 類的功能相同。對于值類型,特定類型(不包括 Object)的 Dictionary 的性能優(yōu)于 Hashtable,這是因為 C# Hashtable 的元素屬于 Object 類型,所以在存儲或檢索值類型時通常發(fā)生裝箱和取消裝箱操作

【編輯推薦】

  1. 概述C#實現(xiàn)文件下載
  2. C#搞定網(wǎng)站驗證碼的方法
  3. 淺談C# String對象
  4. C#命名空間學(xué)習(xí)筆記
  5. 淺析C#調(diào)用ActiveX控件
責(zé)任編輯:佚名 來源: zol
相關(guān)推薦

2009-08-26 10:34:59

C# Hashtabl

2009-06-24 09:52:21

哈希表

2021-07-27 06:49:11

C#存儲檢索

2023-09-26 07:38:53

c#Lambda表達(dá)式

2025-02-17 08:18:27

C#TypeScriptJavaScript

2021-04-15 05:53:35

C# 索引器對象

2024-08-22 08:17:55

C#工具循環(huán)

2009-08-25 17:15:50

C#隱藏C#重寫C#重載

2009-09-02 17:10:45

C#語言入門

2009-08-25 17:21:31

C#索引

2024-09-18 05:20:00

C#代碼

2009-08-25 17:59:49

C#入門

2009-08-13 17:04:09

C#語言C#程序

2009-08-27 16:11:03

C# delegateC# event

2022-01-15 10:02:03

Java Hashtable類 Java 基礎(chǔ)

2025-03-06 00:33:09

動態(tài)編程C#

2009-08-18 10:30:30

C#枚舉

2009-08-24 11:02:52

C#接口映射

2009-08-26 10:34:15

C#類型C#變量

2009-08-24 09:55:26

C#接口轉(zhuǎn)換
點贊
收藏

51CTO技術(shù)棧公眾號