ArrayList - 如何检查索引是否存在?

新手上路,请多包涵

我正在使用 ArrayList<String> 并在特定索引处添加数据,如何检查特定索引是否存在?

我应该简单地 get() 并检查值吗?还是我应该等待异常?还有别的办法吗?

更新: 感谢您的回答,但因为我只是在特定索引处添加内容,所以列表的长度不会显示哪些内容可用。

原文由 ufk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

方法 arrayList.size() 返回 列表中的项目数 - 因此如果索引大于或等于 size() ,它不存在。

 if(index >= myList.size() || index < 0){
  //index does not exists
}else{
 // index exists
}

原文由 Amarghosh 发布,翻译遵循 CC BY-SA 4.0 许可协议

虽然您收到了关于使用列表大小的十几个建议,这些建议适用于具有线性条目的列表,但似乎没有人阅读您的问题。

如果您在不同的索引处手动添加条目,这些建议都不会起作用,因为您需要检查特定的索引。

使用 if ( list.get(index) == null ) 也不起作用,因为 get() 抛出异常而不是返回 null。

尝试这个:

 try {
    list.get( index );
} catch ( IndexOutOfBoundsException e ) {
    list.add( index, new Object() );
}

如果索引不存在,则会在此处添加一个新条目。你可以改变它来做一些不同的事情。

原文由 pli 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题