初始化二维数组(java)
我正在尝试用一些对象初始化二维数组。我希望第二个“维”有不同大小的数组,例如不同的to幂。我的想法是以下代码:初始化二维数组(java),java,arrays,Java,Arrays,我正在尝试用一些对象初始化二维数组。我希望第二个“维”有不同大小的数组,例如不同的to幂。我的想法是以下代码: NodeMatrix=new BNode[n][]; for(int i=0;i<n;i++) { for(int j=0;j<Math.pow(2,i);j++) { NodeMatrix[i]=new BNode[(int)Math.pow(2,i)]; NodeMatrix[i][j]= new
NodeMatrix=new BNode[n][];
for(int i=0;i<n;i++) {
for(int j=0;j<Math.pow(2,i);j++) {
NodeMatrix[i]=new BNode[(int)Math.pow(2,i)];
NodeMatrix[i][j]= new BNode(i);
}
NodeMatrix=新的BNode[n][];
对于(inti=0;i基本上,它不能在java中实现。2D数组只是数组的数组
一个选项是使用数组列表
例如:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class JavaArrayListOfStringArray {
public static void main(String[] args) {
List <String[]> list = new ArrayList <String[]>();
String [] arr1 = {"a","b","c"};
String [] arr2 = {"1","2","3"};
list.add(arr1);
list.add(arr2);
for(String[] arr : list) {
System.out.println(Arrays.toString(arr));
}
}
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.List;
公共类JavaArrayListOfStringArray{
公共静态void main(字符串[]args){
List=newarraylist();
字符串[]arr1={“a”、“b”、“c”};
字符串[]arr2={“1”、“2”、“3”};
列表。添加(arr1);
列表。添加(arr2);
for(字符串[]arr:list){
System.out.println(Arrays.toString(arr));
}
}
}
我没有完全理解您的需求。但是下面的代码可能会帮助您理解Java中的2D数组
public static void generateDynamicArray() {
int[][] arr = new int[5][];
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[(int)Math.pow(2, i)];
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (int) (Math.random() * 10);
}
}
for(int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] +" ");
}
System.out.println();
}
}
publicstaticvoid-generateddynamicarray(){
int[]arr=新int[5][];
对于(int i=0;i
在迭代之前,必须初始化BNode数组。
作为一个建议,考虑一下,如果你真的想用两个幂来设置长度,那么它会增长得很快。
NodeMatrix=new BNode[n][];
for(int i=0;i<n;i++) {
NodeMatrix[i]=new BNode[(int)Math.pow(2,i)];
for(int j=0; j < NodeMatrix[i].length; j++) {
NodeMatrix[i][j]= new BNode(i);
}
}
NodeMatrix=新的BNode[n][];
for(inti=0;iOkay!!编辑了答案。