[英]Converting 2D array to 1D Array without using ArrayList
創建將2d數組轉換為1D數組的函數
但是在聲明時,一維數組的大小如何為新一維數組賦予大小
int[] convert(int[][] input){
int[] result;
int z=0;
for(int row=0;row<input.length;row++) {
for(int col=0;col<input[row].length;col++) {
result[z]=input[row][col];
z++;
}
}
return result;/* Error comes here For Initialization. How to initialize before Knowing size*/
}
行和列是否平衡
int result[] = new int[input.length * input[0].length];
否則,您必須遍歷整個數組,同時保持長度計數
int len = 0;
for(int[] a : input){
len+=a.length;
}
int[] result = new int[len];
您可以通過這種方式簡單地計算大小(即行數* 列數 ):
int[] result = new int[input.length * input[0].length] ;
1)如果是矩形2D數組,則以這種方式計算大小
int array[] = new int[input.length * input[0].length];
2)如果不是矩形,則遍歷每一行並添加每個子數組的長度
int size = 0;
for(int i=0;i<input.length;i++){
size += input[i].length;
}
或者您可以只使用流而不必自己照顧大小:
int[] convert(int[][] input){
return Stream.of(input).flatMapToInt(x -> Arrays.stream(x)).toArray();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.