Java 如何拆分ArrayList<;字符串>;再放入2个ArrayList<;字符串>;比例为1:5
我正在尝试将名为mainarray的ArrayList拆分为另外两个ArrayListJava 如何拆分ArrayList<;字符串>;再放入2个ArrayList<;字符串>;比例为1:5,java,arraylist,Java,Arraylist,我正在尝试将名为mainarray的ArrayList拆分为另外两个ArrayList 已调用ArrayListarray1 已调用Arraylistarray2 在main数组中我正好有12个值: “1” “2” “3” 如何将它们分开,以便在array1中有2个随机值,在array2中有10个随机值 谢谢你的帮助 只需从一个列表中获取两个随机值并添加到另一个列表中即可 Random r = new Random(); list1.add(mainarray.remove(r.nex
- 已调用ArrayListarray1
- 已调用Arraylistarray2
- “1”
- “2”
- “3”
谢谢你的帮助 只需从一个列表中获取两个随机值并添加到另一个列表中即可
Random r = new Random();
list1.add(mainarray.remove(r.nextInt(10)));
list1.add(mainarray.remove(r.nextInt(10)));
list2.addAll(mainarray);
您可以使用
mainarray.size()
查找主阵列列表的大小
如果希望比例为1:5,则总共有6个分区。因此,对循环使用两个:一个范围为1到size/6,另一个范围为(size/6)+1到6*(size/6)
在您的示例中,数组中有12个元素,因此此方法将在array1
中为您提供1和2,在array2
中为您提供3到12。请尝试使用此方法:
此代码从ArrayListnumbers
中选择2/10元素2添加到头部
,并在尾部添加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);
}
publicstaticvoidmain(字符串[]args)
{
列表编号=新的ArrayList();
增加(3);
增加(4);
增加(5);
增加(6);
增加(7);
增加(55);
增加(32);
增加(555);
增加(1);
增加(55);
列表头=新的ArrayList();
List tail=new ArrayList();
对于(inti=1;iit不清楚。您正好有10个值?也许您应该显示一些代码:)但我想在array1中有2个值,在array2中有10个值。所以只需获取随机值,不要删除。非常感谢!我会尝试这样做。或者更确切地说是0-1和2-11,作为mainarray
的索引。结果不会是随机的,但如果保持不变,您可以调用,首先复制mainarray
。