社区
C#
帖子详情
如何解决HashTable添加数据时插入重复键
fagen6688
2011-09-02 10:51:28
我想用HashTable循环向数据库添加数据,当循环到第二次的时候就报错,那个HashTable的键已经存在了,不能再重复添加数据,请问如何保证循环添加数据的时候键是不同的
...全文
1712
12
打赏
收藏
如何解决HashTable添加数据时插入重复键
我想用HashTable循环向数据库添加数据,当循环到第二次的时候就报错,那个HashTable的键已经存在了,不能再重复添加数据,请问如何保证循环添加数据的时候键是不同的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
terry813
2011-09-07
打赏
举报
回复
数据中有重复的数据就不要用HASH表保存数据了,换成其他的,比如List<>
yangc20013
2011-09-06
打赏
举报
回复
判断再加
Frog1228
2011-09-06
打赏
举报
回复
HashTable本来就不支持多对一的,你真要用,那么就键值互换。
该用户懒的设置
2011-09-02
打赏
举报
回复
[Quote=引用 2 楼 jeryler 的回复:]
if(!hashtable .ContainsKey(key))
hashtable .Add(key,value);
先判断再添加
[/Quote]
+1
施黛
2011-09-02
打赏
举报
回复
if(!hashtable .ContainsKey(key))
hashtable .Add(key,value);
先判断再添加
pcqpzq
2011-09-02
打赏
举报
回复
HashTable 如果键重复就没有意义,也不可能实现
liufeihardwork
2011-09-02
打赏
举报
回复
为什么要把已经存在的数据再写一次呢,如果存在的话就取出来不就好了吗,你插入数据库的话,发现Hashtable 中存在的话就根据Key 取出 value ,再插入不就解决了吗。
abc3081577
2011-09-02
打赏
举报
回复
1
可以这样,不过碰到相同的键时会覆盖以前的值
hashTable[key]=value;
vrhero
2011-09-02
打赏
举报
回复
自从有了Dictionary<K,V> HashTable就毫无用处了,所以我说“除非你还在用.NET 1.x”...至于什么“访问效率”,两个不同用途的东西根本谈什么比较效率...
sdl2005lyx
2011-09-02
打赏
举报
回复
楼上说得有失偏颇啊,HashTable还是很有用的,访问效率比List<T>高多了。
“当循环到第二次的时候就报错,那个HashTable的键已经存在”,楼主,这说明你并没有用数据库表的主键做HashTable的key,1楼和2楼都说得很清楚,key本来就是HashTable,就不应该重复!
vrhero
2011-09-02
打赏
举报
回复
1.允许重复改用List<T>...
2.HashTable已过时,不要用了...除非你还在用.NET 1.x...
sjfbtnmcn
2011-09-02
打赏
举报
回复
[Quote=引用 2 楼 jeryler 的回复:]
if(!hashtable .ContainsKey(key))
hashtable .Add(key,value);
先判断再添加
[/Quote]
是啊,没错
你好快啊
数据
结构中的哈希表
前言 哈希表是一种非常重要的
数据
结构,几乎所有的编程语言都有直接或间接的使用到这种
数据
结构。 介绍 哈希表通常是基于数组进行实现的,但是相对于数组,哈希表有许多的优势: 它可以提供非常快速的
插入
-删除-查找操作。 在哈希表种,无论多少
数据
,
插入
和删除值只需要接近常量的
时
间:即O(1)的
时
间级。在进行操作
时
只需要几个机器指令即可完成。其速度比树还要快,基本可以瞬间查找到想要的元素。 但是哈希表也有不足: 哈希表种的
数据
是没有顺序的,所以不能以一种固定的方式(比如从小到大)来遍历其中的元素。 通常情况下,
Java 集合深入理解 (十四) :
Hashtable
实现原理研究
Java 集合深入理解 (十一) :HashMap之实现原理及hash碰撞 前言 之前分析的hashmap的实现原理确实在jdk的1.8后经过Doug Lea 大牛的优化,非常适合我们学习优秀算法,以及理解其中的思想; 我们继续看一下
hashtable
,虽然
hashtable
jdk已经不推荐使用,但是我们看源码,看出早期java实现哈希表的基本思想;包括 实现线程安全的方式,及
解决
hash碰撞,早期扩容方式,不允许
数据
为空 实现原理
HashTable
类中,保存实际
数据
的,是Entry对象
c#
hashtable
的使用方法
1.使用
hashtable
前.需要
添加
System.Collections的引用using System.Collections; 2.
添加
元素
Hashtable
ht =new
Hashtable
();ht.Add(key,value);// key,value可以是任何类型如果key有
重复
会掷出运行
时
异常,你可以这样处理if(ht.Contains(key)==fals
C#
Hashtable
、HashSet和Dictionary的区别
1.
Hashtable
哈希表(
HashTable
)表示
键
/值对的集合。在.NET Framework中,
Hashtable
是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的
键
值对,其中key通常可用来快速查找,同
时
key是区分大小写;value用于存储对应于key的值。
Hashtable
中key-value
键
值对均为object类型,所以
Hashtable
可以支持任何类型的keyvalue
键
值对,任何非 null 对象都可以用作
键
或值。 2.Hash
Java
Hashtable
详细介绍
目录第1部分
Hashtable
介绍第2部分
Hashtable
数据
结构第3部分
Hashtable
源码解析(基于JDK1.6.0_45)第3.1部分
Hashtable
的“拉链法”相关内容3.1.1
Hashtable
数据
存储数组3.1.2
数据
节点Entry的
数据
结构第3.2部分
Hashtable
的构造函数第3.3部分
Hashtable
的主要对外接口3.3.1 clear()3.3.2 c...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章