提问人:MCA22 Adarsh Kumar 提问时间:6/27/2023 最后编辑:PaulMcKenzieMCA22 Adarsh Kumar 更新时间:7/6/2023 访问量:51
如果存在整数类型的 Arraylist。我想从中删除第一个索引。它与第一个索引和值 1 有何不同
If Arraylist of integer type is present. And I want to remove 1st index from it. How it differ by 1st index and value 1
问:
想象一下我有 数组列表 al ={1,2,3,4,5}; 我想删除我将使用的第一个索引 al.remove(1)。 我想按值删除,即 1,我将使用 al.remove(1)。 JVM 如何理解我是要删除第一个索引还是 value=1? 我也想按索引和值删除。
答:
"...JVM 如何理解我是要删除第一个索引还是 value=1?我也想按索引和值删除。
需要将参数指定为 Integer 对象。
al.remove(Integer.valueOf(1));
否则,你是对的,int 值 1 将被解释为索引值。
List<Integer> al = new ArrayList<>(List.of(1, 2, 3, 4, 5));
al.remove(Integer.valueOf(1));
System.out.println(al);
输出
[2, 3, 4, 5]
评论
从 JavaDoc 的 List 界面。请注意,这是一个可选方法。remove()
E remove(int 索引)
删除此列表中指定位置的元素(可选操作)。将任何后续元素向左移动(从其索引中减去一个)。返回从列表中删除的元素。返回位于指定位置的元素。
boolean remove(对象 o)
从此列表中删除指定元素的第一个匹配项(如果存在)(可选操作)。如果此列表不包含该元素,则保持不变。更正式地说,删除索引最低的元素 i,使 Objects.equals(o, get(i)) (如果存在这样的元素)。如果此列表包含指定的元素,则返回 true(或者等效地,如果此列表因调用而更改)。如果对象存在,则返回 true,否则返回 false。
由于目前定义了方法,因此选择具有与参数类型最匹配的参数的方法。
请注意,如果只有 和 no 则无论指定 an 还是 .在后一种情况下,将被拆箱为 .remove(int index)
remove(Object o)
remove(int index)
int
Integer
Integer
int
顺便说一句,如果您要删除一个或多个连续项目,从索引 0 开始,您不妨为列表分配一个子列表,因为它会更有效,尤其是对于大型列表。假设您要删除前 10 个项目。你可以这样做。
list = list.subList(10,list.size());
如果保留原始列表,则更改原始列表或子列表中的任何内容将反映在另一个列表中,因为返回原始列表的指定部分的视图。subList
评论
ArrayList al ={1,2,3,4,5};
Integer
remove(1)
remove(int)