gpt4 book ai didi

java - 从 Java 中的 Arraylist 中删除特定元素?

转载 作者:行者123 更新时间:2023-12-01 07:21:33 24 4
gpt4 key购买 nike

我有一个包含(字符串-)数组的数组列表。现在我希望能够从 Arraylist 中删除特定元素。

这是一个数组列表示例:

0:  [Name, , , ]
1: [Telefon, \(\d+\) \d+, DAFAE8, FF6262]
2: [E-Mail, ^[a-zA-Z0-9]+(?:(\.|_)[A-Za-z0-9!#$%&'*+/=?^`{|}~-]+)*@(?!([a-zA-Z0-9]*\.[a-zA-Z0-9]*\.[a-zA-Z0-9]*\.))(?:[A-Za-z0-9](?:[a-zA-Z0-9-]*[A-Za-z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$, DAFAE8, FF6262]
3: [Company, , , ]
4: [Test, , , ]
5: [Test2, , , ]
6: [Test3, , , ]

现在我想删除第 5 个元素(包含 Test2 的数组)。我该如何实现这一目标?

我已经尝试过以下操作:

public static List<String[]> removeSpecificElements(List<String[]> list, int i){
list.remove(new Integer(i));
return list;
}

这个不会抛出任何类型的异常,但也不起作用。

public static List<String[]> removeSpecificElements(List<String[]> list, int i){
list.remove(i);
return list;
}

这个会抛出 ArrayIndexOutOfBounds。

public static List<String[]> removeSpecificElements(List<String[]> list, int i){
Iterator<String[]> itr = list.iterator();
itr.next();
for (int x = 0; x < i; x++){
itr.next();
System.out.println(itr);
}
itr.remove();
return list;
}

这个总是删除第一个元素。

你能帮我一下吗?

最佳答案

Now I want to delete the 5th element (the array which includes Test2). How do I accomplish that?

您需要使用

list.remove(i); // where i = 5 - 1, as the first element is 0.

如果你这样做

list.remove(new Integer(i));

它将查找您刚刚创建的对象,该对象不存在于列表中,因此正如您所说,它什么也不做。

简而言之,不要将 intInteger 混淆,因为它们是不同的类型。

理想情况下,API 应该有一个不同的方法,例如 removeAt(int) 来消除这种潜在的困惑来源,但现在更改它为时已晚。

<小时/>

这什么时候能起作用?考虑以下因素。

List<Integer> ints = new ArrayList<>();
ints.add(4);

List<MyType> list = (List) ints; // it works but don't do this.
boolean wasRemoved = list.remove(new Integer(4)); // true!!

关于java - 从 Java 中的 Arraylist 中删除特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35622803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com