HashTable Dictionary HashMap
发布时间:2021-05-21 06:58:35 所属栏目:大数据 来源: https://www.jb51.cc
导读:HashTable和HashMap 脑海中一直存在两个Hash,一个是HashMap另一个是HashTable,今天来总结一下两者的区别 相同点:表示根据键的哈希代码进行组织的键/值对的集合,哈希表也叫散列表。 区别:HashMap在C#中不存在的,而是在Java中 1.C#每一个元素都是存储在Di
HashTable和HashMap脑海中一直存在两个Hash,一个是HashMap另一个是HashTable,今天来总结一下两者的区别 相同点:表示根据键的哈希代码进行组织的键/值对的集合,哈希表也叫散列表。 区别:HashMap在C#中不存在的,而是在Java中 1.C#每一个元素都是存储在DictionaryEntry对象中的键/值对,键不能为 null,但值可以。 2.在Java的HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。 因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断 HashTable示例using System;
using System.Collections;
? namespace MyCollection
{ public class HashTableExample { static void Main() { // Create a new hash table.
Hashtable openWith = new Hashtable();
? // key没有重复,但是value有重复.
openWith.Add("txt","notepad.exe"); openWith.Add("bmp",1)">"paint.exe");
openWith.Add("dib",1)">"rtf",1)">"wordpad.exe");
? //如果key重复,进行catch处理
try
{ openWith.Add("winword.exe");
} catch
{ Console.WriteLine("An element with Key = "txt" already exists.");
} ? // 通过key获取value
Console.WriteLine("For key = "rtf",value = {0}.",openWith["rtf"]); ? //替换value
openWith["rtf"] = "winword.exe"; Console.WriteLine(//遍历HashTable
foreach (DictionaryEntry de in openWith) { Console.WriteLine(de.Key); } ? //获取Keys
ICollection keCollection = openWith.Keys; foreach (string s in keCollection) { Console.WriteLine("key = {0}",s);
} ? //删除指定的key
openWith.Remove("doc");
if (!openWith.Contains("doc")) { Console.WriteLine("Key"doc" is not found");
} } } } 运行结果HashTable和Dictionary示例代码@H_301_217@ using System.Collections;using System.Collections.Generic;
? ? class HashTableDictionary
{ void Main(string[] args) { Hashtable hashtable = new Hashtable();
hashtable.Add("8",1)">"Name8");
hashtable.Add("2",1)">"Name5");
hashtable.Add("5",1)">"Name2");
hashtable.Add("1",1)">"Name1");
foreach (var hash in hashtable.Keys) { Console.WriteLine(hash.ToString()); } Console.WriteLine(); ? Dictionary<int,1)">string> dict = new Dictionary<string>(); dict.Add(8,1)">"Name8"); dict.Add(2,1)">"Name5"); dict.Add(5,1)">"Name2"); dict.Add(1,1)">foreach (var _dict1 in dict.Keys)
{ Console.WriteLine(_dict1); } ? Console.WriteLine(); Dictionary<string,1)">string> dict2 = string>(); dict2.Add("Name8");
dict2.Add("Name5");
dict2.Add("Name2");
dict2.Add(foreach (var _dict2 in dict2.Keys) { Console.WriteLine(_dict2); } } } } ? 运行结果(编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |