如果未初始化数组列表,如何检查 java 中的 sizeof 数组列表而不会从编译器中获取错误异常。我尝试了以下方法,但它不起作用。我收到了这条消息:线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:1,大小:1
ArrayList<String> str = new ArrayList<>();
if (str.size()>0)
如果未初始化数组列表,如何检查 java 中的 sizeof 数组列表而不会从编译器中获取错误异常。我尝试了以下方法,但它不起作用。我收到了这条消息:线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:1,大小:1
ArrayList<String> str = new ArrayList<>();
if (str.size()>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)
.
初始化是指对象是否已分配给引用
用代码
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 实际上是数组列表中的第二个元素,并且它不存在。