首页 > 解决方案 > 如何检查Java中的ArrayList中是否存在某个索引

问题描述

在 Java 中,我试图将 User 对象存储在 ArrayList 中,然后在存储/添加它之前 - 我在询问该对象应该存储在哪里的索引号。当他输入索引号时,我想检查是否索引是空的,即没有其他用户对象存储在该索引上 - 如果它是空的,新用户将被添加,如果它已经被占用,我会要求用户再次输入一个有效的索引号。

所以问题是 - 我如何检查 ArrayList 中的特定索引是否为空?

我知道存在此方法 ArrayList.contains(Object e) 但这里的问题是,我想查看是否存在特定的 INDEX,而不是 OBJECT 是否存在。所以请告诉我如何实现这一点,谢谢你。

标签: javaoop

解决方案


我认为您误解了 Lists(或本例中的 ArrayLists)的工作原理。列表中不能有空槽。当 List 有 1 个元素时,它的索引始终为 0。如果有 3 个元素,它们的索引为 0、1 和 2。然后,如果从该列表中删除索引为 1 的元素,它将被重新组织,并在位置上有元素0 和 1。

如果你想保留元素的缺陷,你可以使用一个简单的对象数组,User[]或者使用分配给它们的缺陷和对象的映射,Map<Integer, User>


推荐阅读