我有一个问题,要求读取索引并检查它是否为空,如果是,并且它位于大于或等于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));
}
我在其他地方读到,哈希表可能会更好,但是对于我的生活我无法理解为什么。
答案 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是什么类型。