所以我认为我可以使用HashMap,但它不起作用,因为第一个键不会是唯一的 - 数据集中独一无二的是密钥1和密钥2的组合。需要一些像<key(不唯一)<key, double>>的ds - 不确定要使用什么
我想过将密钥串联成一个字符串来强制唯一性,我认为这应该起作用,但我想确认是否存在“以任何其他方式。需要明确的是,我所期待的一种数据结构,我能...
- 查找第一个关键
- 查找第二个关键
- 访问存储双
这在嵌套的HashMap中工作,但由于第一个键不会是唯一的,所以它会在新的第二个键上更新,在下一个迭代中双键更新。
从搜索中,似乎有一个建议是从Apache的库中使用Multimap,但我不想在访问第一个键时返回一个列表。我最终只想通过访问第一个键然后第二个键来获得双倍。
有什么建议吗?或者我应该试着让串联工作?
示例代码
if(map.get(first[1]) != null &&
map.get(first[1]).get(second[1]) != null) {
HashMap<String, Double> inner = map.get(first[1]);
inner.put(second[1], inner.get(second[1]) + 1.0);
} else {
map.put(first[1], new HashMap<>());
map.get(first[1]).put(second[1], 1.0);
}
的,检查是不是确有必要 - 应该只是第二个条件
你说的是双倍的,但是那张图保存了整数,并且存在一些问题。您将第一个键(用于外部映射)放入内部映射中,并且如果外部映射已经具有一个,则插入一个新的HashMap,因为内部映射没有第二个键,因此失去了所有先前的信息。 –
对不起,这些都是拼写错误。双/整数,或者没问题。最终,只是试图更新和访问值。第一[1] inner.put应该肯定是第二[1]。 – cpd1
还有一些你没有提到的东西。看起来你并不是想插入一个特定的值,而是增加一个计数器? –