我正在尝试找到一种方法来获得排序的多图。我检查了 Guava,它提供了两个单独的集合数据结构,它们结合起来可以解决我的问题。引人注目的是 SortedSetMultimap 不能包含相同的键,因为它是一个 Set 而 Multimap 在同一个符号中。那是怎么回事?
编辑
在 C++ 中,我有类似的东西,希望能告诉你我打算如何在 Java 中使用类似的功能:
struct KeyCompare : public binary_function<pair<double,double>, pair<double,double>, bool>
{
bool operator()(const pair<double,double>& p1, const pair<double,double>& p2) const;
};
multimap<pair<double,double>, Object*, KeyCompare> _list;
.../...
KeyCompare key_compare;
while (( ! _list.empty() && key_compare(_list.begin()->first, k))) {
u = _list.begin()->second;
v = _list.begin()->first;
用英语:我需要一个映射,其键是双精度对,引用值中包含的某些对象。该映射可以包含多个相同的键(发生相同的双数对),因此这需要是一个多映射或包。发生这种情况时,可以将元素插入到集合中,并且在选择顶部元素时,它应该返回其中之一(无论哪个都无所谓)。我需要集合是可变的,因为对于每次迭代,我都会选择较小的元素并将其从地图中删除。