我正在使用ArrayList<String>
,并且我在特定的索引处添加数据,如何检查特定的索引是否存在?
我是否应该简单地get()
并检查该值?或者我应该等待一个异常?还有别的办法吗?
更新:谢谢你的回答,但因为我只在特定的索引上添加内容,所以列表的长度不会显示哪些是可用的。
发布于 2010-01-25 19:14:52
方法arrayList.size()
returns列表中的项数-所以如果索引大于或等于size()
,它就不存在。
if(index >= myList.size()){
//index not exists
}else{
// index exists
}
发布于 2011-11-22 23:04:58
虽然你得到了十几个关于使用列表大小的建议,这些建议适用于具有线性条目的列表,但似乎没有人阅读你的问题。
如果您在不同的索引处手动添加条目,这些建议都不会起作用,因为您需要检查特定的索引。
使用if ( list.get(index) == null )也不起作用,因为get()抛出一个异常,而不是返回null。
试试这个:
try {
list.get( index );
} catch ( IndexOutOfBoundsException e ) {
list.add( index, new Object() );
}
在这里,如果索引不存在,则添加一个新条目。你可以改变它来做一些不同的事情。
发布于 2010-01-25 19:30:33
这就是你需要的..。
public boolean indexExists(final List list, final int index) {
return index >= 0 && index < list.size();
}
为什么不使用普通的旧数组呢?我认为对列表的索引访问是一种代码味道。
https://stackoverflow.com/questions/2131802
复制相似问题