Java在if语句中向数组添加东西?

时间:2019-02-09 04:18:49

标签: java arrays

基本上,我有一个在脚本开头创建的数组

public String[] testarray;

然后,我稍后在脚本中想将内容添加到数组中:

if(testvalue == 1) {
  testarray[0] = "value1";
}

这显然行不通。我该怎么办?

3 个答案:

答案 0 :(得分:0)

在Java中,必须在编译时使用大小初始化数组。大小可以是变量,但是在代码运行时必须是确定性的。因此,您不能只是动态调整大小的数组。

因此,以下方法将起作用:

public String[] testarray = new String[n]; // n is an int

if(testvalue == 1) {
  testarray[0] = "value1"; // assuming n>0
}

如果您绝对需要动态大小的数组,则ArrayList将为您工作。

ArrayList<String> testList = new ArrayList<String>();
testList.add("value1");

列表基本上是按需扩展的数组。

答案 1 :(得分:0)

public String [] testarray; //此数组需要初始化一些大小。

但是,如果您对需要存储的数据长度没有任何预测,则可以使用动态集合API,例如:-

public List<String> testList = new ArrayLisy<String>();

答案 2 :(得分:0)

Java中的数组不是动态的。换句话说,它们在内存中的大小是固定的,您可以从内存中分配给它的位置添加/删除项目。

您可以创建一个特定大小的数组:

0

现在,您可以将其添加到数组的第ArrayList个索引中,因为它有“空间”。

或者,您可以使用public ArrayList<String> myList = new ArrayList<String>(); ,它是动态ADT(即,它可以增大大小)。

.add(String item)

然后您可以使用if(testvalue == 1) { myList.add("value1"); } 向其添加项目:

import java.util.ArrayList;

但是,如果要使用ArrayList,则需要确保导入适当的库:

from win32com.client import Dispatch
excel = Dispatch("Excel.Application")
workbook = excel.ActiveWorkbook
xlsWB = excel.Workbooks.Open(r'D:\\indexing\\test.xlsx') 
xlsSheet = xlsWB.Sheets("sheet1") 
mychart = excel.Charts(1)
mychart.Export(Filename=r'D:\\indexing\\test.xlsx.png')