哈希表vb.net 哈希表數(shù)據結構

.NET中哈希表的引用和鍵的引用分別存在哪

你問題都沒說清楚,,,怎么回答你?。?/p>

專業(yè)領域包括網站設計、網站制作、商城網站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網站設計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)建站的整合解決方案結合了幫做網絡品牌建設經驗和互聯(lián)網整合營銷的理念,并將策略和執(zhí)行緊密結合,為客戶提供全網互聯(lián)網整合方案。

猜一下吧,你說的鍵的引用指的是Dictionary嗎?

如果是的話,

首先哈希表和Dictionary都是有鍵和值組成的元素。

他們的區(qū)別就在于效率及靈活性上。

從哈希表和Dictionary的Add方法定義來看

HashTable:

public virtual void Add(

Object key,

Object value

)

Dictionary:

public void Add(

TKey key,

TValue value

)

HashTable,的key和value都是object類型的,這樣,

HashTable ht=new HashTable();

ht.Add(1,12);

這樣子就存在一個裝箱操作(值類型到引用類型的類型轉換),同樣在取值的時候又涉及到拆箱操作(引用類型到值類型的類型轉換).裝箱和拆箱操作時很費時的操作。在效率上不高。

而Dicitionary是一個泛型類,key及value的類型是在實例化Dictionary對象時指定的,如:

Dictionaryint,int dict = new Dictionary();

dict.Add(1,12);

同樣的操作,但是這里的key和value是在實例化的時候指定的int類型。所以這里不存在裝箱和拆箱操作。

以上是Dictionary的優(yōu)點。

下面是HashTable的優(yōu)點,Dictionary的缺點。

如果我們所有元素的key和value是相同的類型,使用Dictionary是最好的選擇,

但是如過有元素的key和value類型不同的情況下,我們就要使用HashTable了,原因就是HashTable的key和value都是object類型的,而object類型是所有類型的基類。

一下是例子。

HashTable:

HashTable ht = new HashTable();

ht.Add(1,12);

ht.Add("1","12");

ht.Add(2,"12");

ht.Add("2",12);

Dictionary實現(xiàn)上面的情況就需要:

Dictionaryint,int dict = new Dictionary();

dict.Add(1,12);

Dictionarystring,string dict1 = new Dictionary();

dict1.Add("1","12");

Dictionaryint,string dict2 = new Dictionary();

dict2.Add(2,"12")

Dictionarystring,int dict3 = new Dictionary();

dict3.Add("2",12);

以上就是他們的區(qū)別了以及各自的優(yōu)缺點。。。

VB.NET 中 HASHTABLE 的疑問

我們知道Hashtable 是線程安全的,可由多個讀取器線程或一個寫入線程使用。

它的特點是:通過節(jié)點的關鍵碼確定節(jié)點的存儲位置,即給定節(jié)點的關鍵碼k,通過一定的函數(shù)關系H(散列函數(shù)),得到函數(shù)值H(k),將此值解釋為該節(jié)點的存儲地址.

HashMap 與Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null為關鍵碼的.

我們知道在使用內存中的地址時是按照哪里有空閑的就使用哪里的。怎么可能一直由著我們輸入的順序給你開放地址呢?

VB.NET 獲取文件MD5值

Public Function md5(ByVal a As String) As String

Dim tempmd5 As System.Security.Cryptography.MD5 = New System.Security.Cryptography.MD5CryptoServiceProvider()

Dim bytResult() As Byte = tempmd5.ComputeHash(System.Text.Encoding.Default.GetBytes(a))

Dim strResult As String = BitConverter.ToString(bytResult)

strResult = strResult.Replace("-", "")

Return strResult

End Function

如果要計算文件的就把參數(shù)改成字節(jié)數(shù)組就可以了,然后獲取文件GetBytes()傳進去就可以了。

網頁題目:哈希表vb.net 哈希表數(shù)據結構
標題來源:http://muchs.cn/article28/dohshcp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站導航、營銷型網站建設全網營銷推廣、搜索引擎優(yōu)化、App開發(fā)、面包屑導航

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)