所有
我已阅读这些链接,
Is there a way to get the value of a HashMap randomly in Java?
Selecting random key and value sets from a Map in Java
在keySet上使用toArray()
并且list.get()
不是一个选项。因为这些方法花费O(n)时间。
上述链接中描述的所有方法都采用O(n)最坏情况从hash map
获取随机值。是否可以在O(1)时间内完成这项工作?
答案 0 :(得分:1)
你可以得到keySet()返回的第一个值.iterator()。next()它是随机的,但每次都会相同,直到更改集合。
唯一的选择是使用反射来获取底层数组并自行导航。
简而言之,HashMap不是为此目的而设计的。如果需要,请使用其他数据结构。