hashtable问题 各位大哥,我想建一个hashtable用于搜索,但是看了java的关于hashtable的说名,弄的一塌糊涂。java提供的好多关于hashtable的类,比如HashTable,HashMap,HashSet,LinkedHashMap等等,这些类到底是怎么使用的?请高手给我介绍一下建个hashtable,实现insert,delete,search的过程,以及这些类到底是怎么应用的?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HashTable nums = new HaskTable();nums.put("one", new Integer(1));nums.put("two", new Integer(2));nums.put("three", new Integer(3));Integer n = (Integer)nums.get("two");nums.remove("three");nums.clear(); java 是怎么处理hash collision的? 我还是不是太明白:put(key,value)中key和value代表什么东西?以前学数据结构的时候,key经过hash函数,hash(key)会得出这个key在hashtable 中的位置,而因为hash collision,这个位置通常都会对应一个链表用来存储所有被hash到这个位置的元素。如果要取出某个元素的话,是要先找出它的key,然后hash到相应的位置,最后在search哪个链表才能得到?java的get(key)方法难道就一定得出的是唯一元素吗?那如果被hash到那个个位置的元素不止一个怎么办? 还有,我是不是可以认为java的hashtable类中,key和元素是一一对应的。在put函数中,事实上是指定了这种对应关系?这样的话,到是可以理解put函数的结果。 1、看看JDK文档2、自己编几个程序试试 Hashtable table = new Hashtable(); table.put("a","a"); table.put("b","b"); table.put("c","b"); table.remove("a"); //删除 Iterator iter = table.keySet().iterator();//遍历 while (iter.hasNext()){ table.get(iter.next().toString()); } 楼上的iterator是在遍历所有的key,如果我没有理解错的话。但是这会有两个问题啊,首先hash到同一位置的key可能不止一个,另外,就算被hash到某个位置的key只有一个,那么拥有同一个key的元素也可能不止一个,那么get(key)得出来的到底是什么? key ,value说白了就是键值对这有点像python 里面的字典写成员是关于hashtable的类 有时候需要重写equals,compareTo方法 可以注意一下 请用Swt designer的朋友请进,新建一个JFrame出错。高分求救。晚上结贴。 想实现截取DOS中PING命令的信息 javac -g classname 请各位朋友推荐一下学java 所需http基础的书 jTable 的一个问题 !! 从DB2取出XML类型的数据 请教一个问题 关于环境变量的一些问题! java中接口的用法,详细问题请进来看看 小妹在线等待:Java如何使用mySQL数据库?(弱智问题) 一个线程共享的问题 为什么运行不下去??????????????大家帮帮忙,谢谢了!!!
nums.put("two", new Integer(2));
nums.put("three", new Integer(3));Integer n = (Integer)nums.get("two");nums.remove("three");nums.clear();
2、自己编几个程序试试
table.put("a","a");
table.put("b","b");
table.put("c","b");
table.remove("a"); //删除
Iterator iter = table.keySet().iterator();//遍历
while (iter.hasNext()){
table.get(iter.next().toString());
}
这有点像python 里面的字典
写成员是关于hashtable的类 有时候需要重写equals,compareTo方法 可以注意一下