2016-05-20 163 views
-5

我一直在使用处理键/值对的HashMap。但是,现在我需要处理关键:价值,价值。是否有可能拥有2个值的一个键? 你能为我推荐一个数据结构/集合或策略吗?哪个集合/数据结构可以处理键值,值

+2

这是Java还是C++?无论如何,你需要一个真正的物体。 “(价值,价值)”是什么意思?它代表什么?当你回答时,你已经有了要创建的对象的名字。 – Tunaki

+0

如果你在谈论C++,那么你可以使用'std :: unordered_map >' – ArchbishopOfBanterbury

+0

一个包含ArrayList的Map作为值将起作用。 'Map >' –

回答

1

什么是更有意义的做法是让一个对象来保存你的两个值,如HashMap<KeyType, ContainerObject> map

在容器对象中,您可以使用类似于列表的东西,或者您自己定义的对象,它们只是容纳您需要的任何两个值。这样,您可以使用HashMap并通过保存它们的对象访问您需要的任何值。

2

是的,你可以假设这是C++,你可以有

std::unordered_map<key, std::pair<value, value>>; 

您可以进行的std ::对自己喜欢的任意类型的那样。

+2

据我了解'hash_map'不是C++标准的一部分,但是'std :: unordered_map'是。 – ArchbishopOfBanterbury

+0

它不是,但hash_map是STL的一部分。 –

+0

http://en.cppreference.com/w/cpp/container/unordered_map它是'unordered_map'不是hash_map –