在java中,我试图将一个用户对象存储在arraylist中,在存储/添加它之前,我会询问这个对象应该存储在哪里的索引号。当他输入索引号时,我想检查该索引是否为空,即该索引上没有存储任何其他用户对象-如果为空,将添加新用户,如果该用户已被占用,我将要求该用户再次输入有效的索引号。。
所以问题是-如何检查arraylist中的特定索引是否为空?
我知道存在这个方法arraylist.contains(objecte),但这里的问题是,我想看看是否存在一个特定的索引,而不是对象是否存在。。所以,请让我知道如何才能做到这一点,谢谢你。
2条答案
按热度按时间zaq34kh61#
我想你误解了列表(在本例中是arraylists)的工作原理。列表中不能有空槽。当一个列表有1个元素时,它总是有索引0。如果有3个元素,它们有0、1和2的标记。然后,如果从该列表中删除索引为1的元素,它将被重新组织,并在位置0和1处包含元素。
如果要保留元素的索引,可以使用简单的对象数组,
User[]
,或索引和分配给它们的对象的Map,Map<Integer, User>
.kx1ctssn2#
您可以通过以下方式进行检查:
方法,如果索引>=size,则它不存在。