检查数组列表大小

时间:2012-09-09 07:49:50

标签: java

如果没有初始化arraylist,如何检查java中的sizeof数组列表而不会从编译器获取错误异常。 我尝试了以下但它不起作用。我收到了这条消息: 线程“main”中的异常java.lang.IndexOutOfBoundsException:索引:1,大小:1

ArrayList<String> str = new ArrayList<>();
if (str.size()>0)

2 个答案:

答案 0 :(得分:0)

您发布的代码中没有任何内容会抛出IndexOutOfBoundsException。我假设您之前没有进行尺寸检查而正在调用str.get(0)

无论如何,您的代码很好,即您应该能够扩展它以执行以下操作:

List<String> someStrings = new ArrayList<String>();
...
if (someStrings.size() > 0) {
    System.out.println("First element of list is: " + someStrings.get(0));
} else {
    System.out.println("List is empty");
}

但是,为了清洁起见,我建议使用if (!someStrings.isEmpty())来代替if (someStrings.size() > 0)进行检查。

答案 1 :(得分:0)

通过初始化,您的意思是是否已将对象分配给参考

使用代码

List<String> str;

如果你调用str.size(),它将抛出一个空指针异常,因为你还没有为这个列表引用分配一个对象。

要分配参考,您可以执行

List<String> str = new Arraylist<String>();

str现在指向一个数组列表对象。

您现在可以致电

str.isEmpty()

查看列表是否包含任何内容。

列表是zero based所以如果你调用str.get(0),那么你将得到一个IndexOutOfBounds异常。你不能得到第一个元素(索引0),因为那里没有任何内容

如果添加元素

str.add("hello")

然后你可以打电话

str.get(0) 

将返回“你好”

如果你调用str.get(1),那么你将再次得到一个IndexOutOfBound,因为索引1实际上是数组列表中的第二个元素,而且不存在。