多个值作为Map Collection中的键

时间:2013-05-04 11:45:35

标签: java sql map

问题:我将表的SQL语句存储在映射中,因为表的PK值映射到相应的insert / select语句。但现在我遇到了一个使用复合键(4 Pk)的表格。

现在我的逻辑基础被动摇了,因为我读过一个数组不能用作任何地图中的Key我有什么方法可以过来吗?

我宣布地图如下

Map<String, String> pkMap= new Map<String, String>();

其中键是表的主键。

注意:我正在处理数据库中的几个表,并不是所有的表都有4个PK作为复合键,很少有可能只有2个或1个

2 个答案:

答案 0 :(得分:2)

您可以简单地使用List<String>作为密钥(如果您想支持异构类型,则可以使用List<Object>)。如果两个列表具有相同的大小并且所有成员都相等,则它们是相同的。

答案 1 :(得分:0)

如何定义一个关键类:

class DBKeys {
 private List<String> keys = new ArrayList<String>;

 public void addKeyToList(String key) {
     keys.add(key);
 }

  public List<String> getKeys() {
      return keys;
 }

 // override hashcode and equals as well
}

然后将地图定义为

 Map<DBKeys,String> = new HashMap<DBKeys,String>