[英]How to create Dynamic Two Dimensional Array [JAVA]
我是java新手,我想创建一个二维数组,其中行是静态的,但列是动态的。
double [][] lastSecArray = new double [2][41];
int lastValue = -1;
public foo (){
lastValue++;
lastSecArray[0][lastValue] = st_ms;
//more code here
}
lastValue的值增加,当它达到41时,我的程序给出了数组索引超出范围。 这是我应该期待的。
如何使teh数组的列动态化,以便无论lastValue的值增加多大,它都会运行。
使用Map<Double, List<Double>>
可能更合适。 将Map
的值作为List<Double>
将允许您展开列表而不是具有固定大小的数组。
public static void main(String[] args) throws CloneNotSupportedException {
Map<Double, List<Double>> myMap = create(1, 3);
}
public static Map<Double, List<Double>> create(double row, double column) {
Map<Double, List<Double>> doubleMap = new HashMap<Double, List<Double>>();
for (double x = 0; x < row; x++) {
for (double y = 0; y < column; y++) {
doubleMap.put(x, new ArrayList<Double>());
}
}
return doubleMap;
}
尝试使用
Map<String, ArrayList> lastSecArray = new HashMap<>();
ArrayList value = new ArrayList();
value.add(0);
value.add(1);
value.add(2);
lastSecArray.put("0", value);
所以你可以操作
lastSecArray.size()
要么
lastSecArray.put(...)
或数组中的数组
请改用ArrayList 。
您可以使用:
List<List<Double>> = new ArrayList<>();
ArrayList
是可动态扩展的。 您可以为行和列创建ArrayList
。
我假设你来自C世界。 在Java中,您有许多表示数组的对象。
我建议你查看这个链接: ArrayList 。 这是一个使用可调整大小的数组的类。
我认为这是在Java中使用动态二维数组的好方法。
由于ArrayList是模板类,因此您可以创建ArrayList<ArrayList<double>>
,或者如果您希望具有“静态”行数,则可以创建ArrayList<double[2]>
。
如果您知道运行时的元素大小
int size=runtime decides;
double [][] lastSecArray = new double [2][size];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.