如何检查Arraylist索引是否为空

时间:2016-10-01 21:13:44

标签: java arraylist null is-empty

我有一个问题,要求读取索引并检查它是否为空,如果是,并且它位于大于或等于67的位置(从0开始),我必须打印出位于索引i-67的元素。我遇到的问题是检查索引是否包含任何内容

  for(int i = 0; i <= s.size()-1; i++){
    if(s.get(i) == null && i >= 67)
      w.println(s.get(i-67));
  }

我在其他地方读到,哈希表可能会更好,但是对于我的生活我无法理解为什么。

1 个答案:

答案 0 :(得分:0)

使用if(s.get(i) == null)不起作用,方法get()会抛出异常而不是返回null。

你需要捕获异常,使用它:

try {
    s.get(i);
} catch (IndexOutOfBoundsException e) {
    s.add(i, new Object());//Add something to fill this position.
}

如果i位置的Arraylist为null(空),则代码会捕获异常,您可以添加一些内容来填充该位置。你没有指定你的Arraylist是什么类型。