我需要将一个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);
}
答案 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]);
}
}