我在数据库中有一个包含10列的表。其中一列具有alphaneumaric值,该值被设置为hashmap的键,该hashmap将所有值作为hashmap中每行的对象。 例如:A10(键),rowobj(类)。现在在同一列中,另一个值作为A10出现。那么现在如果我们尝试从表中加载值到hashmap,键名是相同的,那么会有多个值注册到同一个键名吗?
我们还可以组合2列的值来为哈希映射创建唯一键吗?怎么做?
谢谢
答案 0 :(得分:3)
两个选项:
map.put(id, rowObject)
Multimap
(番石榴)答案 1 :(得分:2)
你不能使用表格的主键作为HashMap
的键吗?
答案 2 :(得分:1)
您可以使用HashMap,其中键仍为A10,但现在值为List。
因此,您可以为同一个键设置多个值。插入第一个元素时,只需要注意插入时创建新List。可能是(伪代码):
HashMap<String, List> myMap = new HashMap<String,List>;
for (elements to insert){
if (!myMap.containsKey(element.key()))
ArrayList myList = new ArrayList();
myList.add(element);
myMap.put(element.key(), myList);
}else{
ArrayList myList = myMap.get(element.key());
myList.add(element);
myMap.put(element.key(), myList);
}
}
答案 3 :(得分:0)
如果你的意思是密钥 x 应该映射到列表 vals (这是 x 代表的值),那就是像这样容易做到(没有检查语法,所以不要指望它编译):
//assuming that the keys are of type int and values are of type String
Map<int,List<String>> myMap = new HashMap()<int, new ArrayList()<String>>;