我有以下的Hashmap:基于值的频率随机选择的一个关键
Map <Country, List<City>> map = new HashMap<Country, List<City>>();
我想挑选一组国家的随意,具有以下条件:国家数字较小的城市应该有更高的被选中的可能性。
为了解决这个问题,我想我会创建以下地图:
Map <Country, Integer> map = new HashMap<Country, Integer>();
其中整数代表的List<City>
大小。
这样我就可以根据Integer值对Map
进行排序,然后选择具有低整数值的国家。
但是,看起来我正在以非常长的方式做到这一点,加上它不是很随机。你有什么建议如何有效地解决这个问题?
你如何使用带有你自己的'Comparator'的'TreeMap',它会根据大小自动对值进行排序? –
你指的是什么T和List?请从我们的角度重新阅读您的帖子(因为您没有发布任何内容而没有看到您的代码的人),并对其进行编辑,以便一切都清晰可见。 –
地图得到/放大概需要O(1),所以你的想法与额外的地图保持价值频率看起来不是“很长的路” –