在Java中,有没有什么快速(且美观)的方法可以从数组中删除元素?
发布于 2009-03-13 21:40:26
您可以使用commons lang的ArrayUtils。
array = ArrayUtils.removeElement(array, element)
发布于 2009-03-13 22:36:41
你的问题不是很清楚。从你自己的回答中,我可以更好地告诉你你想要做什么:
public static String[] removeElements(String[] input, String deleteMe) {
List result = new LinkedList();
for(String item : input)
if(!deleteMe.equals(item))
result.add(item);
return result.toArray(input);
}
注:这是未经测试的。错误检查留给读者作为练习(如果input
或deleteMe
为null,我将抛出IllegalArgumentException
;null列表输入上的空列表没有任何意义。从数组中删除空字符串可能是有意义的,但我也将其作为练习;目前,如果deleteMe
为空,则在尝试调用deleteMe
上的equals时,它将抛出NPE
。)
我在这里做的选择:
我用的是LinkedList
。迭代应该同样快,并且避免任何大小调整,或者如果最终删除了大量元素,则避免分配过大的列表。您可以使用ArrayList
,并将初始大小设置为输入的长度。这可能不会有太大的不同。
发布于 2009-03-13 14:13:58
不能从基本Java数组中删除元素。请看一下各种集合和ArrayList。
https://stackoverflow.com/questions/642897
复制相似问题