JAVA中Hashtable 移除元素后 会留下一个null键值??

Hashtablehash=newHashtable();for(inti=0;i<array.length;i++){hash.put(""+i,""+array[i]... Hashtable hash=new Hashtable(); for(int i=0;i<array.length;i++){
hash.put(""+i, ""+array[i]);
}hash.remove(“”+4); for(int i=0;i<array.length;i++){
System.out.println(""+hash.get(""+i));
} 打印出来的结果是0123null5678.9请问怎么会是这样?怎么还有null的位置?不会自动向前自动填充null位置吗?有没有哪个方法可以实现这个? 0 1 2 3 5 6 7 8 9 让他自动向前填充?像List 我记得就可以这样。。
展开
 我来答
百度网友f0f5e3118
2013-03-28 · TA获得超过405个赞
知道答主
回答量:279
采纳率:0%
帮助的人:246万
展开全部
首先你要明白Hashtable的原理是通过hash函数进行存放和后去索引的,它的开销主要在添加元素时,但是它索引理论是O(1)的效率。Hashtable不是普通的数组或者链表。
你循环遍历Hashtable的方法也是有误的,参考我的例子。

public void testHashTable() {

int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = i;
}
Hashtable hash = new Hashtable();
for (int i = 0; i < array.length; i++) {
hash.put("" + i, "" + array[i]);
}
hash.remove("" + 4);

for (Iterator itr = hash.keySet().iterator(); itr.hasNext();) {
String key = (String) itr.next();
String value = (String) hash.get(key);
System.out.println(key + "--" + value);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-28
展开全部
这个是正常的。

找不到key及对应的value了,返回null。

你任意指定一个key,只要是不存在,都会返回null。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
muyu1970
2013-03-28
知道答主
回答量:33
采纳率:0%
帮助的人:12.4万
展开全部
hashtable中不容许有空值的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-29
展开全部
你把key为4的元素删了,再去get(4)当然得到的就是null了,有什么不对吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丫丫的守护
2013-03-28 · 超过17用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:28.3万
展开全部
同问,为了经验,别删我楼。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式