当前位置:  开发笔记 > 编程语言 > 正文

对和值之间的Java映射

如何解决《对和值之间的Java映射》经验,为你挑选了1个好方法。

我需要创建一个缓存第三方查找服务结果的地图.请求由两个对象组成,例如,timemonth.地图需要在(time, month)结果和结果之间进行映射.

我最初的想法是使一个对象有效地包装timemonth进入一个元组对象,因此缓存是该对象和结果之间的映射.

有没有更好的方法来执行此操作,而无需在每次需要使用缓存时将请求包装到元组对象中?

非常感谢.



1> dasblinkenli..:

我最初的想法是使一个对象包装timemonth有效地成为一个元组对象

这是正确的想法.覆盖hashCode()equals(Object)你的元组,以使其工作HashMap,或compareTo(TimeMonthTuple)使其工作TreeMap

有没有更好的方法呢?

这是最简单的方法,除非你有一个类可以替换TimeMonthTuple为有意义的东西.例如,时间和日期可以组合成一个Date对象.

在某些情况下,您可以基于原始包装器创建密钥.例如,如果time表示为自午夜以来的分钟数,并且month是介于1和12之间的数字(包括1和12),则可以将这两个值包装成一个Integer,并将其用作键:

Integer makeTimeMonthKey(int time, int month) {
    return (time * 12) + (month - 1);
}

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有