在我的程序中,我正在尝试在循环时向数组添加值。在将它放入数组之前,它必须满足if语句。我需要能够根据输入添加所需数量的值。我不知道该怎么做。任何帮助将不胜感激。
for(int a=0; a<= subset1white.length-1;a++){
String w = Integer.toString(Integer.parseInt(subset1white[a]) + 2);
String x = Integer.toString(Integer.parseInt(subset1white[a]) - 2);
String y = Integer.toString(Integer.parseInt(subset1white[a]) + 10);
String z = Integer.toString(Integer.parseInt(subset1white[a]) - 10);
String[] arithmetic = {w, x, y, z};
for(int b=0; b<= arithmetic.length-1; b++){
if(arithmetic[b] == subset1black[a]){
}
}
}
如果if
循环返回true,我需要将subset1black[a]
值放入名为result
的数组中。我知道如何声明数组,但我不知道如何声明一个可以更改长度的数组(添加新值)。
答案 0 :(得分:2)
使用可根据需要动态增长的ArrayList<Integer>
(由Bhesh Gurung建议):
// Declare
List<Integer> result = new ArrayList<Integer>();
// Add to end of the list
result.add(subset1black[a]);
有关详细信息,请参阅Javadoc,或者是否要以不同方式将元素添加到列表中。
如果您确实需要原始数组,则可以转换List
。请参阅此related Q。
答案 1 :(得分:0)
Java中没有可变大小的原始数组,因此最接近这种数据结构的是ArrayList
类,它在内部是一个对象数组,必要时调整大小。将ArrayList
初始化为预期大小(或更多)有助于避免调整大小,但不需要进行此优化。
对于相关代码,上述实现可以是:
List<Integer> result = new ArrayList<Integer>(subset1white.length);
for (int a=0; a<subset1white.length; a++) {
String w = Integer.toString(Integer.parseInt(subset1white[a]) + 2);
String x = Integer.toString(Integer.parseInt(subset1white[a]) - 2);
String y = Integer.toString(Integer.parseInt(subset1white[a]) + 10);
String z = Integer.toString(Integer.parseInt(subset1white[a]) - 10);
String[] arithmetic = {w, x, y, z};
for (int b=0; b<= arithmetic.length-1; b++) {
if (arithmetic[b] == subset1black[a]) {
result.add(new Integer(subset1black[a]));
}
}
}
没有必要初始化Integer
对象以添加到ArrayList
,因为Java
会自动执行此操作(通过“自动装箱”),但这样做会使代码变得有点清洁剂。