在java中洗牌JSON数组的有效方法?

2023-11-22

哪种方法最好?现在,我将我的JSONArray to an ArrayList自定义类的,使用Collections.shuffle()执行该操作,并转换回JSONArray,这似乎开销太大。

答案可能只是实施一个费舍尔-耶茨洗牌对于它,但我的猜测是这可能已经完成了,所以我想避免重新发明轮子。 我看了标准JSON api and 谷歌的Gson但他们似乎没有任何实施。

标准阵列还有简单的选项在这个问题中可以很容易地移植到java,但我很高兴听到你的意见。我很惊讶这个查询http://www.google.com/search?q=java+shuffle+jsonarray没有让我充满方法。


很抱歉发布我自己问题的答案,但现在,由于没有开箱即用的快速解决方案,我正在根据这篇文章中的代码实现我自己的静态随机播放函数:数组的随机洗牌。仍然期待听到最佳实施方案。这就是我所做的:

public static JSONArray shuffleJsonArray (JSONArray array) throws JSONException {
    // Implementing Fisher–Yates shuffle
        Random rnd = new Random();
        for (int i = array.length() - 1; i >= 0; i--)
        {
          int j = rnd.nextInt(i + 1);
          // Simple swap
          Object object = array.get(j);
          array.put(j, array.get(i));
          array.put(i, object);
        }
    return array;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在java中洗牌JSON数组的有效方法? 的相关文章

随机推荐