【发布时间】:2020-03-08 14:46:42
【问题描述】:
我正在创建一个哈希图,其中我的键是字符串,值是列表。从 excel 我正在读取所有行值并添加到列表中。然后列表映射到键。但是当尝试一个键的值时,它会返回 null。请让我知道代码中有什么问题。
private static void FCToProjectsMapping(String RefFilename)
{
System.out.println(RefFilename);
Workbook wb = null;
HashMap<String, ArrayList<String>> MappingFCInProjects = new HashMap<String, ArrayList<String>>();
try
{
if (RefFilename == null || RefFilename.isEmpty())
{
System.out.println("Workbook is empty or Not available");
}
try
{
wb = new XSSFWorkbook(new FileInputStream(RefFilename));
}
catch(Exception e)
{
System.out.println(e);
}
Sheet sheet = wb.getSheet("Sheet0");
int TotalColumnNo = sheet.getRow(1).getLastCellNum();
for (int ColNo = 2; ColNo < TotalColumnNo; ColNo++)
{
ArrayList<String> itemList=new ArrayList<String>();
String FCNAME = sheet.getRow(1).getCell(ColNo).getStringCellValue().trim();
String ClassificationNAME = sheet.getRow(2).getCell(ColNo).getStringCellValue().trim();
String AltNo = sheet.getRow(3).getCell(ColNo).getStringCellValue().trim();
String Version = FCNAME + "/" + AltNo + "_" + ClassificationNAME;
for (int RowNo=5; RowNo <= sheet.getLastRowNum(); RowNo++)
{
if(sheet.getRow(RowNo).getCell(ColNo)!=null && !sheet.getRow(RowNo).getCell(ColNo).getStringCellValue().isEmpty())
{
String ProjectName = "";
if(sheet.getRow(RowNo).getCell(ColNo)!=null && !sheet.getRow(RowNo).getCell(ColNo).getStringCellValue().isEmpty())
{
ProjectName = sheet.getRow(RowNo).getCell(1).getStringCellValue().trim();
itemList.add(ProjectName);
}
}
}
if(!MappingFCInProjects.containsKey(Version))
{
MappingFCInProjects.put(Version, itemList);
}
itemList.clear();
}
wb.close();
}
catch(Exception error)
{
System.out.println("Error occured in FCToProjectsMapping function is "+ error);
}
}
【问题讨论】:
-
调试并检查您的代码是否向数组列表添加了一些值。