hashtable 一个键多个值 getValue()

问题描述

一个hashtable中,若有key是多个value的,那么把这个key的所有value都存在一个linkedlist里面。我想问,那么现在如果我用getValue(Objectkey),而这个key是有多个value的,那么这个方法返回的是一个value还是一个linkedlist?如果返回的是一个value,那么是哪个value呢?

解决方案

本帖最后由 sshber 于 2014-08-04 01:03:03 编辑
解决方案二:
返回linkedlist,例如:Hashtable<String,List<String>>table=newHashtable<String,List<String>>();List<String>value=table.get("key");
解决方案三:
在一个hashtable中,不存在一个key对应多个value的问题,如果两个对象的equals方法返回true,则会认为是相同的对象,在一个hashtable中是不能有两个equals返回true的key的。我觉得你的意义可能是两个对象的hashcode值相同,这样两个key对应的对象是存在一个linklist中的,但是通过get方法获取的时候,首先是通过hashcode定位,然后再通过equals遍历的。
解决方案四:
key有多个value??是要说可不可以是重复的吗??
解决方案五:
键值对?你知道什么是这样的吗?不存在一个键对应多个值,只有多个键对应相同的值才是可能的,添加的时候,如果键相同,那么不可能添加进去的
解决方案六:
哈希算法怎么可能是同一个Key对应多个Value呢?那样的话是覆盖而不是存成什么LinkList除非自己实现这个功能。另外Hashtable没有getValue方法,楼主从哪里得到这些想法的?
解决方案七:
Hashtabled的hash()是有可能出这种问题的,不同key相同value时,后一次put的value值会把前一次的value覆盖掉,所以只会返回最后一个value。HashMap的hash()会好很多,如果可以的话换了试试。
解决方案八:
楼主一定是搞混了理论上的hash表和jdk中hashtable的实现。只有数据结构课上面才会教你这些个冲突检测,但实际上JDK用的时候完全不需要考虑hash值冲突之后的检测问题。

时间: 2024-10-06 23:54:10

hashtable 一个键多个值 getValue()的相关文章

图片-Android 一个键怎么样可以对应3个值

问题描述 Android 一个键怎么样可以对应3个值 一个键怎么样可以对应3个值 Android 解决方案 前两天公司项目,get请求的json,有一个轮播图,是三张图片,json格式{image_url:{url,url,url,}},image_url里边看做一个字符串,用","分割的,split获得三个URL地址,对于你的问题,反过来想,你可以发送一个string,让后台处理,小弟也是经验不足,能提供的意见只有这些了... 解决方案二: 图片发错了 重新补一张 解决方案三: 你可

js实现hashtable的赋值、取值、遍历的教程

本文实例讲述了js实现hashtable的赋值.取值.遍历操作.分享给大家供大家参考,具体如下: 哈希表(Hashtable)这个概率应该是#c里面的概念,用来赋值.取值.遍历.排序操作提高效率.想起这个东西其实使我们以前经常遇到这样的面试题,一个很大的数组可能有100000个,如何快速知道它里面的出现最多的次数,那么这里我们可能就要用Hashtable的相关知识了.Javascript中,object的实现就是hash表,因此只要在object上封装点方法,再利用原生的hasOwnProper

PHP合并2个数字键数组的值的程序

  php中数组合并array_merge是最靠得住的函数了,下文我们在利用array_merge函数合并时主要是对于两个数组的键值为数字进行处理. 先要了解一个基础知识点 PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把最先出现的值作为最

php数组函数序列之array_flip() 将数组键名与值对调_php技巧

array_flip() 定义和用法 array_flip() 函数将使数组的键名与其相应值调换,即键名变成了值,而值变成了键名. array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失. 如果原数组中的值的数据类型不是字符串或整数,函数将报错. 语法 array_flip(array)参数 描述 array 必需.规定输入的数组. 例子 复制代码 代码如下: <?php $a=array(0=>"Dog"

Mysql设置自增长主键的初始值

alter table table_name auto_increment=n; 注意n只能大于已有的auto_increment的整数值,小于的值无效. show table status like 'table_name' 可以看到auto_increment这一列是表现有的值. 步进值没法改变.只能通过下面提到last_inset_id()函数变通使用 Mysql可以使用AUTO_INCREMENT来设定主键的值为自增长的,其默认值是1,如果想把它的初始值设置为1000,比较笨的办法是先插

求助一个触发一个键的事件的问题,急求。。。。。。。。。。。。。。。。。。。

问题描述 我的winform程序中有四个键,每个键控制着往服务器发送四个不同的数据,假如是1,2,3,4四个数据,我想在加上一个键,按这个键,然后在按那四个键中的一个键,怎么可以让他像服务器发送不同的数据,对应的发送5,6,7,8数据,也就是说,加的这个键就像是键盘上shift键的功能现在很急,希望大家能能帮帮忙啦..谢谢啦..不会的帮顶啦.... 解决方案 解决方案二:求帮助啊...解决方案三:有没有知道啊????来者帮顶啊...解决方案四:这个键用checkbox即可解决方案五:不怎么很理解

【JSP EL】&lt;c:if&gt; &lt;c:foreach &gt;EL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

1.EL表达式 获取list长度 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>   <c:if test="${fn:length(list名字)>1}"

40-.net如何从数据库中的一个表中取值

问题描述 .net如何从数据库中的一个表中取值 假设这是我数据库里的一张表(数据库是oracle),我该如何取得这些数将他们传给jsonObj.Rows,求教各位大神,能给个具体的实现过程吗? 解决方案 sonObj.Rows是你自己组装的json对象吧,你首先要查询数据库,这个自己看msdn把,很简单,获取值后开始组织json就行了 解决方案二: 自己读取数据后,通过服务器端代码赋值给aspx上的script标签就行,注意<%%>这种代码不能放js文件里面,必须是在aspx页面里面才能解析运

希望建立一个循环,i值从start递变到end,不知道该怎么写

问题描述 希望建立一个循环,i值从start递变到end,不知道该怎么写 假如end>start,那么可以 for(int i=start,i<=end,i++){} 假如end for(int i=start,i>=start;i--){} 有没有写法可以统一一下,不要分开来写 解决方案 1.循环前先判断, int small=end>start:start?end; int max=end>start:end?start; for(int i=small,i<=ma