Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何拆分ArrayList<;字符串>;再放入2个ArrayList<;字符串>;比例为1:5_Java_Arraylist - Fatal编程技术网

Java 如何拆分ArrayList<;字符串>;再放入2个ArrayList<;字符串>;比例为1:5

Java 如何拆分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

我正在尝试将名为mainarray的ArrayList拆分为另外两个ArrayList

  • 已调用ArrayListarray1
  • 已调用Arraylistarray2
main数组中我正好有12个值:

  • “1”
  • “2”
  • “3”
如何将它们分开,以便在array1中有2个随机值,在array2中有10个随机值


谢谢你的帮助

只需从一个列表中获取两个随机值并添加到另一个列表中即可

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。请尝试使用此方法:
此代码从ArrayList
numbers
中选择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