带有空文件的ArrayList

时间:2017-05-15 10:15:40

标签: java arraylist

我在处理带有空字段的Arraylist时遇到问题。

作为输入,我有一个Excel列表中的值,有些单元格为空(显示示例)。

 Column A  Column B  Column C  Column D 

 Val1      Val2      Val3      Val4 

 Bla1      Bla2      Bla3 

 Hug1      Hug2      Hug3      Hug4 

...

这些价​​值观目前在Arraylist中如此之好。现在我有一个Switch Case,我现在选择D列来使用。问题现在是我不能处理空字段。这些必须删除或跳过,因为我的输出没有null。 当我试图这样做时,我得到一个空指针异常。

以下是一些代码:

private Arraylist<ExcelReader> el;

private void doSomething() {

   switch (chooseColumn) {

   // ArrayList is loaded
   //…
   case “D”: 
       // here I want to remove the null fields
       for (int c = 0; c <= el.size(); c++) {
          if(el.get(c).getColumnD().isEmpty()) {
          el.remove(c);
          }
       }
   break;
   // …

}

我已经尝试过将它写回文件,但得到了空指针异常。 我的错误在哪里?我做错了什么?

2 个答案:

答案 0 :(得分:2)

private Arraylist<ExcelReader> el;

private void doSomething() {

switch (chooseColumn) {

// ArrayList is loaded
//…
case “D”: 
   // here use removeAll to remove all null object
   el.removeAll(Collections.singleton(null));  
   for (int c = 0; c <= el.size(); c++) {
      if(el.get(c).getColumnD().isEmpty()) {
      el.remove(c);
      }
   }
break;
// …

}

答案 1 :(得分:1)

您应该了解isEmpty()不检查空值。它只检查size == 0。 因此,为了检查空值,您应该检查条件getColumnD()!= null