程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从 keySet 中提取随机字符串?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何从 keySet 中提取随机字符串??

开发过程中遇到如何从 keySet 中提取随机字符串?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何从 keySet 中提取随机字符串?的解决方法建议,希望对你解决如何从 keySet 中提取随机字符串?有所启发或帮助;

我正在解决一个问题,我需要从 keySet 中提取一个随机字符串。只是想知道是否有人可以在这里给我一些指导。我很迷茫。如果我使用的是 int 而不是 String,我已经找到了很多方法来做到这一点。例如,我想就州及其首都对用户进行测验,并从问题的 keySet 中提取一个随机密钥。 这是套装:

Set<String> states = stateCAPItals.keySet();

解决方法

Set 不是随机索引的最佳数据结构。

最好转换为 List 并使用随机生成器来选择 index。如果您确实需要使用 Set,您可以生成一个随机索引 n 并遍历 Set,在 nth element 处停止。对于选择多个元素,使用 List 没有任何好处。任何 iterable 都可以。

关键思想是动态调整选择概率,以便您可以选择 m(超出 sizeof(Set)):在最简单的 @H_155_5@m=1 示例中,选择概率为 1/N 的第一个元素,如果您没有选择它,选择 2nd element 的概率为 1/(N-1) ......等等。

使用条件概率显示所有元素都在公平机会1/N下被选中。

,

类似于 HashSet 的 keySet 是无序的,因此不能保证集合中元素的顺序。因此,从集合中提取随机字符串可能不是那么有效。

将集合转换为数组或列表,然后执行随机字符串获取可能是一个不错的解决方案。

,
ArrayList<States> statesList = new ArrayList<>( states );
State x = statesList.get( (int)(statesList.size() * Math.random()) );

上面的代码会得到你想要的,但如果它是一个非常大的列表,这可能会效率低下。

,
String ranKey = map.keySet().toArray()[new Random().nexTint(map.keySet().size())].toString();
,

试试这个代

onPress: function () {
        debugger;
        var textArray = ['Pritesh','Nimesh','Harshil','Ravi','Amit','Brijesh'];
        var randomnumber = Math.floor(Math.random() * textArray.length);
        for (var i = 0; i < textArray.length; i++) {
            if (i === randomnumber) {
                console.log(textArraY[i]);
            }
        }

大佬总结

以上是大佬教程为你收集整理的如何从 keySet 中提取随机字符串?全部内容,希望文章能够帮你解决如何从 keySet 中提取随机字符串?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:如何从