使用字符串列表,我試圖匹配Excel表格中的字符串並在內部列表中添加單元格元素。使用循環在外部列表中添加內部列表。請參考以下無法在列表中使用java追加列表
public static List<ArrayList<String>> getKeywords(List<String> testCaseIdList, String fileName, String sheetName){
try {
ArrayList<String> listTestSteps = new ArrayList<String>();
List<ArrayList<String>> listTestCases = new ArrayList<ArrayList<String>>(0);
Sheet sheetKW = ReadExcelFile.readExcel(ST_KEYWORDS);
String columnValue = null;
int matchFlag, addListFlag = 0;
for(String testCaseId : testCaseIdList) {
Iterator<Row> rowIterator = sheetKW.rowIterator();
listTestSteps.clear();
while(rowIterator.hasNext()) {
Row rowNext = (Row) rowIterator.next();
Iterator<Cell> cellIterator = rowNext.cellIterator();
matchFlag = 0;
addListFlag = 0;
//listTestSteps.clear();
while(cellIterator.hasNext()) {
Cell nextCell = cellIterator.next();
columnValue = nextCell.getStringCellValue();
//System.out.println("Column value " +columnValue);
if((columnValue.equalsIgnoreCase(testCaseId)) && (columnValue != "")) {
matchFlag = 1;
}
if(matchFlag == 1 && columnValue != "") {
listTestSteps.add(columnValue);
addListFlag = 1;
System.out.println("Add Value : "+columnValue);
}
}
if((listTestSteps.isEmpty() == false) && (addListFlag == 1)) {
System.out.println("Adding to the Main list");
listTestCases.add(listTestSteps);
//listTestCases.forEach(System.out::println);
}
}
}
//listTestSteps.forEach(System.out::println);
// Return ArrayList of ArrayLists
return listTestCases;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
我得到的輸出代碼
[TC_0003, login, createUser, deleteUser]
[TC_0003, login, createUser, deleteUser]
首先添加列表listTestSteps
是越來越由最後一次迭代列表取代。
預期輸出爲 [[TC_0002, login, createUser, deleteUser, newUser], [TC_0003, login, createUser, deleteUser]]
確實存在錯誤。任何幫助將不勝感激。
哪一步完全失敗? – XtremeBaumer
這不是失敗。我但列表中'listTestCases'正在被最新的'listTestSteps'所取代。沒有被追加而是被替換。 – avirup
您讀取和打印的值是否正確? – XtremeBaumer