加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:54:32 所属栏目:Java 来源:网络整理
导读:这是最好的方法吗?现在,我将我的 JSONArray转换为自定义类的ArrayList,使用Collections.shuffle()来执行操作,并转换回JSONArray,这似乎是太多的开销. 答案可能只是实现一个 Fisher-Yates shuffle,但我的猜测是,这可能已经完成,所以我想避免重新发明轮子. 我
这是最好的方法吗?现在,我将我的 JSONArray转换为自定义类的ArrayList,使用Collections.shuffle()来执行操作,并转换回JSONArray,这似乎是太多的开销.

答案可能只是实现一个
Fisher-Yates shuffle,但我的猜测是,这可能已经完成,所以我想避免重新发明轮子.
我查看了标准JSON api和Google’s Gson,但它们似乎没有任何实现.

标准阵列in this question也有简单的选项,可以很容易地移植到java,但我很乐意听到你的输入.我很惊讶查询http://www.google.com/search?q=java+shuffle+jsonarray并没有让我充满方法.

解决方法

很抱歉发布了我自己的问题的答案,但是现在,由于没有开箱即用的快速解决方案,我正在根据这篇文章中的代码实现我自己的静态shuffle函数: Random shuffling of an array.仍然期待听到最好的实施.这就是我做的:

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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读