首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从数组中删除元素(Java)

从数组中删除元素(Java)
EN

Stack Overflow用户
提问于 2009-03-13 14:11:48
回答 12查看 953.9K关注 0票数 163

在Java中,有没有什么快速(且美观)的方法可以从数组中删除元素?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-03-13 21:40:26

您可以使用commons lang的ArrayUtils。

代码语言:javascript
复制
array = ArrayUtils.removeElement(array, element)

commons.apache.org library:Javadocs

票数 259
EN

Stack Overflow用户

发布于 2009-03-13 22:36:41

你的问题不是很清楚。从你自己的回答中,我可以更好地告诉你你想要做什么:

代码语言:javascript
复制
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);
}

注:这是未经测试的。错误检查留给读者作为练习(如果inputdeleteMe为null,我将抛出IllegalArgumentException;null列表输入上的空列表没有任何意义。从数组中删除空字符串可能是有意义的,但我也将其作为练习;目前,如果deleteMe为空,则在尝试调用deleteMe上的equals时,它将抛出NPE。)

我在这里做的选择:

我用的是LinkedList。迭代应该同样快,并且避免任何大小调整,或者如果最终删除了大量元素,则避免分配过大的列表。您可以使用ArrayList,并将初始大小设置为输入的长度。这可能不会有太大的不同。

票数 47
EN

Stack Overflow用户

发布于 2009-03-13 14:13:58

不能从基本Java数组中删除元素。请看一下各种集合和ArrayList。

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/642897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档