1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。
2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。
3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。
4.HashTable使用Enumeration,HashMap使用Iterator。
以上只是表面的不同,它们的实现也有很大的不同。
5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。
6.哈希值的使用不同,HashTable直接使用对象的hashCode,代码是这样的:
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;
而HashMap重新计算hash值,而且用与代替求模:
int hash = hash(k);
int i = indexFor(hash, table.length);
static int hash(Object x) {
int h = x.hashCode
}
HashTable HashMap
前者线程安全,即效率相对低些
后面非线程安全,即效率相对高些
前者不可以有null值
后者可以有null值
分享到:
相关推荐
#### 二、创建与添加元素 在 C# 中使用 `Hashtable` 需要先引入 `System.Collections` 命名空间。创建一个 `Hashtable` 对象非常简单: ```csharp using System; using System.Collections; class Program { ...
### 在C#中应用哈希表(Hashtable) #### 哈希表简介 哈希表(Hashtable)是一种基于散列算法实现的数据结构,在.NET Framework中,`Hashtable`类位于`System.Collections`命名空间内,提供了高效存储键值对(key/...
then, 承诺使用异步/等待的Swift库 那就是 原因 - 示例- 文档- 安装fetchUserId().then { id in print("UserID : (id)")}.onError { e in
与此相关的,`Hashtable`是.NET框架中的一个古老的集合类,用于存储键值对,它在早期的.NET应用中十分常见。然而,随着.NET Framework的发展,`Dictionary, TValue>`逐渐取代了`Hashtable`,因为后者不支持泛型,且...
### C#中关于序列化`HashTable`的具体用法详解 #### 一、`HashTable`简介 在.NET Framework中,`HashTable`是`System.Collections`命名空间下提供的一个容器类,主要用于处理和表现键值对(key-value pairs)。...
C# Hastable完整案例,附注释说明,非常适合初学者使用,进阶人群谨慎下载,有问题可留言,o(* ̄︶ ̄ *)o
- **数据库连接**:通过`SqlConnection`对象与数据库建立连接。 - **插入文件到数据库**: - 读取文件流:使用`FileStream`或`MemoryStream`读取文件内容。 - 使用参数化SQL语句插入文件数据:防止SQL注入攻击。 ...
2. 数据库设计元素:文档中包含了多个与数据库设计相关的概念,例如“parentTypeId”,“hasTable”,“descriptionid-ne”,“id-ne”等。这些词汇通常用于描述数据库模型中实体之间的关系和属性。例如,...
之后调用如下方法: 代码如下: /** * 根据表名,判断数据库表是否存在 * @param tableName * @return true:存在该表,false:不存在该表 */ public boolean hasTable(String tableName) { Init(); boolean result = ...
java图书馆swing源码oea.svg 更新时间:2016 ...接口的操作与编写图形应用程序分离。 该包为 JavaScript 开发人员提供了更高级别的抽象,以便独立于 DOM API 操作图形。 它还提供绘制复杂的二维形状、处理字
方法将文件添加到hashtble setItem() 假设我们要添加在索引0对象中找到的术语mango ,则可以使用此方法将索引添加到我们的hastable中 hash . setItem ( 'mango' , 0 ) ; // will create an objec
- `hasTable`: 是否有表格标志。 - `parentTypeId`: 父类型ID。 **8. InvoiceItemTypeAttr** - **定义**: `InvoiceItemTypeAttr` 定义发票项目类型的属性。 - **属性**: - `attrName`: 属性名称。 - `...
`TableTennisPlayer`包含成员变量`firstname`、`lastname`和`hasTable`,以及相应的成员函数。`RatedPlayer`类则扩展了`TableTennisPlayer`,增加了`rating`成员变量和相关的成员函数。 1. `RatedPlayer`的构造函数...
使用js模拟出哈希表的功能.使用非常方便.功能包括添加,删除,查询,遍历,修改,统计等.弄了很久才弄好的哦.