精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-25
抛出异常的爱 写道 BidiMap可以...试试
apache collections 刚看了下BidiMap的介绍 引用 This map enforces the restriction that there is a 1:1 relation between keys and values, meaning that multiple keys cannot map to the same value.
这条可能会影响map的使用吧,至少平时我们对value没有什么限制的。 |
|
返回顶楼 | |
发表时间:2009-05-25
langyu 写道 抛出异常的爱 写道 BidiMap可以...试试
apache collections 刚看了下BidiMap的介绍 引用 This map enforces the restriction that there is a 1:1 relation between keys and values, meaning that multiple keys cannot map to the same value.
这条可能会影响map的使用吧,至少平时我们对value没有什么限制的。 你上边不是说只想处理数值开的吗,怎么现在对value又没有限制了。 |
|
返回顶楼 | |
发表时间:2009-05-25
你用set存这些数据吧...不要用map...
|
|
返回顶楼 | |
发表时间:2009-05-25
woaiwofengkuang 写道 langyu 写道 抛出异常的爱 写道 BidiMap可以...试试
apache collections 刚看了下BidiMap的介绍 引用 This map enforces the restriction that there is a 1:1 relation between keys and values, meaning that multiple keys cannot map to the same value.
这条可能会影响map的使用吧,至少平时我们对value没有什么限制的。 你上边不是说只想处理数值开的吗,怎么现在对value又没有限制了。 至少这个value是可以重复的数值吧。 |
|
返回顶楼 | |
发表时间:2009-05-25
引用 1.HashMap的key, value都是object,而我现在只想比较数值类型的key或value的对象。对于所有数值型,怎么做个通用的比较方法呢?(我先把它们转成Number类,再强制转成double类型进行比较,总觉的这种方法很山寨)。
2.对象多的时候,插入很慢的。它要从链表头一个接一个的比较对象,速度奇慢无比,怎么能优化下呢?(网上找“查找有序链表”时,都是那个key等于key或value,而我现在想要的不是“等于”而是“接近”,也就是如何生成一个有序链表) 第一条,没啥好办法. 第二条,应该是用树型的结构吧. |
|
返回顶楼 | |
发表时间:2009-05-25
搜索树是比较合适的选择
虽然TreeMap只比较key,但你可以写个类似的,加上value比较 |
|
返回顶楼 | |
发表时间:2009-05-25
javaeyebird 写道 搜索树是比较合适的选择
虽然TreeMap只比较key,但你可以写个类似的,加上value比较 这个想法不错,因为key-value对是一个entry,存储的时候也可以把他们翻过来,用value作为key 不过这里的"key"是可重复的 输出迭代时,再把key与value翻过来 差不多 |
|
返回顶楼 | |
发表时间:2009-05-25
最后修改:2009-05-25
langyu 写道 javaeyebird 写道 搜索树是比较合适的选择
虽然TreeMap只比较key,但你可以写个类似的,加上value比较 这个想法不错,因为key-value对是一个entry,存储的时候也可以把他们翻过来,用value作为key 不过这里的"key"是可重复的 输出迭代时,再把key与value翻过来 差不多 把entry 重实现hash + compare方法 先比value 再比key 塞到set中去 反回set的iterator...不知道这方法的效率高否 |
|
返回顶楼 | |
发表时间:2009-05-25
抛出异常的爱 写道 langyu 写道 javaeyebird 写道 搜索树是比较合适的选择
虽然TreeMap只比较key,但你可以写个类似的,加上value比较 这个想法不错,因为key-value对是一个entry,存储的时候也可以把他们翻过来,用value作为key 不过这里的"key"是可重复的 输出迭代时,再把key与value翻过来 差不多 把entry 重实现hash + compare方法 先比value 再比key 塞到set中去 反回set的iterator...不知道这方法的效率高否 对这个说法不太明白。 放到哪种Set中去? 先比较value的话,怎么处理value值相同的问题? PS:起初不想使用set的原因是value是可重复的,还有HashSet还是把HashMap包装了一层,我觉着增加了复杂性。 |
|
返回顶楼 | |
发表时间:2009-05-25
最后修改:2009-05-25
langyu 写道 抛出异常的爱 写道 langyu 写道 javaeyebird 写道 搜索树是比较合适的选择
虽然TreeMap只比较key,但你可以写个类似的,加上value比较 这个想法不错,因为key-value对是一个entry,存储的时候也可以把他们翻过来,用value作为key 不过这里的"key"是可重复的 输出迭代时,再把key与value翻过来 差不多 把entry 重实现hash + compare方法 先比value 再比key 塞到set中去 反回set的iterator...不知道这方法的效率高否 对这个说法不太明白。 放到哪种Set中去? 先比较value的话,怎么处理value值相同的问题? PS:起初不想使用set的原因是value是可重复的,还有HashSet还是把HashMap包装了一层,我觉着增加了复杂性。 中间借助set的了排序方式.... 我喜欢用set来排序.... |
|
返回顶楼 | |