0

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

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

2 回答 2

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).

于 2012-09-09T07:57:09.493 回答
0

初始化是指对象是否已分配给引用

用代码

List<String> str;

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

要分配参考,您可以这样做

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

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

您现在可以致电

str.isEmpty()

查看列表是否有任何内容。

列表是从零开始的,所以如果你调用 str.get(0) 那么你会得到一个 IndexOutOfBounds 异常。您无法获取第一个元素(索引 0),因为那里没有任何内容

如果你添加一个元素

str.add("hello")

然后你可以打电话

str.get(0) 

这将返回“你好”

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

于 2012-09-09T08:56:59.287 回答