将几个Arraylists转换为数组

时间:2016-04-27 04:25:56

标签: java arrays arraylist

我需要将一个arraylist的值放入一个数组中,这样我就可以完成一个for循环项目。我有一个带有10个arraylists的arraylist,每个数组都有一个或多个整数值:Arraylist<ArrayList<Integer>> lists = new ArrayList<>(); 我使用for循环来创建其他10个数组,现在我需要将10个arraylists放入一个

的数组中
Integer [] second; 

我需要按照放置它们的顺序将arraylists放入[]数组中,我必须这样做才能完成我的项目。但由于某些原因,我的for-loop用于将每个单独的arraylist放入数组中将不会打印它们。有什么建议? 这是我用于将arraylists打印到数组中的for循环:

for(int i=0; i<lists.siz();i++)
{
   second = lists.get(i).toArray(second);
}

2 个答案:

答案 0 :(得分:1)

// Create temp list
List<Integer> secondList = new ArrayList<Integer>();
// add all sublist to temp list
for(ArrayList<Integer> subList : lists)
{
   secondList.addAll(subList);
}
// convert temp list to array
Integer[] second = secondList.toArray(new Integer[secondList.size()]);

答案 1 :(得分:1)

import java.util.ArrayList;

import org.apache.commons.lang3.RandomUtils;

public class ArrayListToArray {

public static Integer[] IncreaseArraySizeByOneElement(Integer[] oldArray){
    int sizeOfOldArray=oldArray.length;
    int newSizeOfArray=sizeOfOldArray+1;
    Integer[] newArray=new Integer[newSizeOfArray];
    for(int x=0;x<sizeOfOldArray;x++){
        newArray[x]=oldArray[x];
    }
    return newArray;
}

public static void main(String[] args) {

    ArrayList<ArrayList<Integer>> ListOfIntArray = new ArrayList<ArrayList<Integer>>();
    for (int x = 0; x < 10; x++) {
        ArrayList<Integer> ListOfInts = new ArrayList<Integer>();
        for (int y = 0; y < 5; y++) {
            ListOfInts.add(RandomUtils.nextInt(4800, 7000));
        }
        ListOfIntArray.add(ListOfInts);
    }

    System.out.println("There are 10 ArrayList containing each ArrayList 5 elements "+ListOfIntArray);
    System.out.println("Let's put now above ArrayList of ArrayList into a single Integer[]");

    Integer[] arrayOfMyInts = null;

    for (ArrayList<Integer> ListOfInts : ListOfIntArray) {
        for (int y = 0; y < 5; y++) {
            if(arrayOfMyInts==null){
                arrayOfMyInts = new Integer[0];
            }
            arrayOfMyInts=ArrayListToArray.IncreaseArraySizeByOneElement(arrayOfMyInts);
            arrayOfMyInts[arrayOfMyInts.length-1]=new Integer(ListOfInts.get(y));
        }
    }

    System.out.println("Printing all elements Integer[]");
    for(int x=0;x<arrayOfMyInts.length;x++)
    System.out.println(arrayOfMyInts[x]);   
}

}