从数组中获取随机列表?
Get random list from an array?
所以,我的代码是这样的:
import java.util.Random;
String[] arr= (vars.get("Types")).split(";");
int idx = new Random().nextInt(arr.length);
String type = (arr[idx]);
vars.put("b_type", type);
数组看起来像这样
` arr = {"id":1, "type_1":1},{"id":2, "type_2":2},{"id":3, "type_3":3},{"id":4, "type_4":4},...'
有人能帮忙吗?我需要从数组 'arr'.
中随机获取 arr2
可以是像
这样的一个元素
`arr1 = {id:value, type_1:value}`
或其中一些,即
`arr1 = [{"id":1, "type_1":1},{"id":4, "type_4":4}]`
或等效的 arr1 = arr
首先需要一个随机整数值表示数组元素的个数,然后生成随机元素插入到新数组中。
//number of elements in result array
int count = new Random().nextInt(arr.length);
ArrayList<String> result = new ArrayList<String>();
for(int i=0; i<count; i++){
//random index of element that must be added to result
int index = new Random().nextInt(arr.length);
result.add(arr[index]);
}
只需确保结果数组中的元素不重复即可。
这是一个解决方案:
将您的数组元素插入 ArrayList,以便您可以编辑元素
ArrayList<String> myarray = new ArrayList<String>();
for(int i=0; i<arr.length; i++){
myarray.add(arr[i]);
}
然后在里面 for:
for(int i=0; i<count; i++){
//random index of element that must be added to result
int index = new Random().nextInt(myarray.length);
result.add(myarray[index]);
myarray.remove(index);
}
所以,我的代码是这样的:
import java.util.Random;
String[] arr= (vars.get("Types")).split(";");
int idx = new Random().nextInt(arr.length);
String type = (arr[idx]);
vars.put("b_type", type);
数组看起来像这样
` arr = {"id":1, "type_1":1},{"id":2, "type_2":2},{"id":3, "type_3":3},{"id":4, "type_4":4},...'
有人能帮忙吗?我需要从数组 'arr'.
中随机获取 arr2可以是像
这样的一个元素`arr1 = {id:value, type_1:value}`
或其中一些,即
`arr1 = [{"id":1, "type_1":1},{"id":4, "type_4":4}]`
或等效的 arr1 = arr
首先需要一个随机整数值表示数组元素的个数,然后生成随机元素插入到新数组中。
//number of elements in result array
int count = new Random().nextInt(arr.length);
ArrayList<String> result = new ArrayList<String>();
for(int i=0; i<count; i++){
//random index of element that must be added to result
int index = new Random().nextInt(arr.length);
result.add(arr[index]);
}
只需确保结果数组中的元素不重复即可。
这是一个解决方案: 将您的数组元素插入 ArrayList,以便您可以编辑元素
ArrayList<String> myarray = new ArrayList<String>();
for(int i=0; i<arr.length; i++){
myarray.add(arr[i]);
}
然后在里面 for:
for(int i=0; i<count; i++){
//random index of element that must be added to result
int index = new Random().nextInt(myarray.length);
result.add(myarray[index]);
myarray.remove(index);
}