Ale*_*dam 3 java arrays json shuffle
这是最好的方法吗?现在,我将我的JSONArray一个ArrayList自定义类的,使用Collections.shuffle()要执行的操作,并转换回JSONArray,这似乎是太多的开销.
答案可能只是为了实现 Fisher-Yates洗牌,但我的猜测是,这可能已经完成,所以我想避免重新发明轮子.我查看了标准的JSON api和Google的Gson,但它们似乎没有任何实现.
此问题中的标准数组也有简单的选项可以轻松移植到java,但我很乐意听到您的输入.令我惊讶的是,查询http://www.google.com/search?q=java+shuffle+jsonarray并未充斥我的方法.
Ale*_*dam 10
很抱歉发布了我自己的问题的答案,但是现在,由于没有开箱即用的快速解决方案,我正在实现我自己的基于此帖子的代码的静态shuffle函数:随机洗牌的数组.仍然期待听到最好的实施.这就是我做的:
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;
}
Run Code Online (Sandbox Code Playgroud)