我有一个2D整数数组。我希望将它们放入HashMap中。但是我想从基于数组索引的HashMap访问元素。就像是:
对于A [2]
[5],map.get(2,5)
它返回与该键关联的值。但是,如何使用一对密钥创建一个hashMap?或者通常是多个键:Map<((key1, key2,..,keyN), Value)
以一种我可以使用get(key1,key2,… keyN)来访问元素的方式。
编辑:发布问题3年后,我想再添加一点
我遇到了另一种方法NxN matrix
。
数组索引,i
和j
可被表示为一个单一的key
方式如下:
int key = i * N + j;
//map.put(key, a[i][j]); // queue.add(key);
索引可以通过key
以下方式撤消:
int i = key / N;
int j = key % N;
有几种选择:
Map<Integer, Map<Integer, V>> map = //...
//...
map.get(2).get(5);
public class Key {
private final int x;
private final int y;
public Key(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Key)) return false;
Key key = (Key) o;
return x == key.x && y == key.y;
}
@Override
public int hashCode() {
int result = x;
result = 31 * result + y;
return result;
}
}
在这里实施equals()
和hashCode()
至关重要。然后,您只需使用:
Map<Key, V> map = //...
和:
map.get(new Key(2, 5));
Table
从番石榴
Table<Integer, Integer, V> table = HashBasedTable.create();
//...
table.get(2, 5);
Table
使用下方 的地图 。
请注意,特殊Key
类是缩放到n维的唯一方法。您可能还会考虑:
Map<List<Integer>, V> map = //...
但这从性能角度以及可读性和正确性(强制列表大小的简便方法)方面都是可怕的。
也许看看在Scala上有元组和case
类的地方(用单线替换整个Key
类)。
问题内容: 在Python中,可以向1构造函数传递一系列键值对: 除了为此目的定义我自己的函数外,我想不出其他任何方法来在JavaScript中执行此类操作: 但是我是JS新手…这种对对对象转换是否内置任何内容? 1出于这个问题的目的,我将Python字典视为JS对象的Python副本,尽管当然相似性仅限于它们都是键值集合这一事实。 问题答案: 在撰写本文时(2013年),JavaScript对象
我使用stackoverflow链接中的第一个解决方案来创建和读取一个包含两个键和一个值的hashMap。即 如何将键/值对放在这个HashMap上? 简而言之,我希望做相当于 但对于多键hashmap。
问题内容: 尝试查看是否有任何JavaScript库功能可以合并两个json对象的特定键的值 使用$ .extend和$ .merge给出以下结果 我正在寻找的是 问题答案: 您想深入扩展
我有一个二维整数数组。我想把它们放入一个散列图。但我希望基于数组索引访问来自HashMap的元素。类似于: 对于[2][5],,该map.get(2,5)返回与该键关联的值。但是我如何创建一个带有一对键的hashMap呢?或者通常使用多个键:,我可以使用get(key1,key2,...keyN)访问元素。 编辑:三年后,张贴的问题,我想添加一点更多 我遇到了的另一种方式。 数组索引、和可以通过以
根据给定的键值对创建一个对象。 使用 Array.reduce() 来创建和组合键值对。 const objectFromPairs = arr => arr.reduce((a, v) => ((a[v[0]] = v[1]), a), {}); objectFromPairs([['a', 1], ['b', 2]]); // {a: 1, b: 2}
我有一个实体,其中主键由其他两个表的两个外键组成。我使用以下配置,但该表是使用两个FK引用生成的。 表: 生成于: 如果我把台词注释掉 在Entity2和Entity3上,它会正确地生成DB,但我认为EF需要导航属性,对吗?获取正确数据库架构的正确方法是什么?