我正在尝试将名为 mainarray 的ArrayList拆分为另外两个ArrayList&#39>
在主阵列中,我有完全 12个值:
如何拆分它们,以便 array1 中有2个随机值, array2 中有10个随机值
感谢您的帮助!
答案 0 :(得分:1)
从一个列表中获取两个随机值并添加到另一个列表中。
Random r = new Random();
list1.add(mainarray.remove(r.nextInt(10)));
list1.add(mainarray.remove(r.nextInt(10)));
list2.addAll(mainarray);
答案 1 :(得分:1)
您可以使用mainarray.size()
查找主ArrayList的大小。
如果您希望比率为1:5,则总共有6个分区。所以使用两个for
循环:一个范围 1到size / 6 ,另一个范围(size / 6)+1到6 *(size / 6)强>
在您的示例中,您的数组中有12个元素,因此此方法会在array1
中为1和2,在array2
中为3到12。
答案 2 :(得分:1)
尝试使用此:
此代码从ArrayList numbers
中选择,选择2/10 element2添加到head
并在tail
添加10个元素:
public static void main(String[] args)
{
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(3);
numbers.add(4);
numbers.add(5);
numbers.add(6);
numbers.add(7);
numbers.add(55);
numbers.add(32);
numbers.add(555);
numbers.add(1);
numbers.add(55);
List<Integer> head = new ArrayList<Integer>();
List<Integer> tail = new ArrayList<Integer>();
for(int i = 1; i<=numbers.size(); i++){
if(i%6==0){
head.add(numbers.get(i-1));
}
else{
tail.add(numbers.get(i-1));
}
}
System.out.println("head: "+ head);
System.out.println("tail: "+tail);
System.out.println("numbers: " +numbers);
}