在Java中,如何从数组中删除对象?
给定一个n对象的数组,假设它是一个字符串数组,它有以下值:
foo[0] = "a";
foo[1] = "cc";
foo[2] = "a";
foo[3] = "dd";
要删除/删除数组中等于“a”的所有字符串/对象,我需要做什么
你可以在下面搜索框中键入要查询的问题!
给定一个n对象的数组,假设它是一个字符串数组,它有以下值:
foo[0] = "a";
foo[1] = "cc";
foo[2] = "a";
foo[3] = "dd";
要删除/删除数组中等于“a”的所有字符串/对象,我需要做什么
# 1 楼答案
参见下面的代码
# 2 楼答案
[如果你想要一些现成的代码,请滚动到我的“Edit3”(剪贴后)。其余的都是留给后人的。]
要充实Dustman's idea:
编辑:我现在使用
Arrays.asList
而不是Collections.singleton
:singleton仅限于一个条目,而asList
方法允许您添加其他字符串以在以后过滤:Arrays.asList("a", "b", "c")
Edit2:上述方法保留了相同的数组(因此数组的长度仍然相同);最后一个后面的元素被设置为null。如果您想要一个新的数组,大小完全符合要求,请使用以下选项:
编辑3:如果在同一个类中频繁使用此代码,您可能希望考虑将此代码添加到类:
然后函数变成:
这样就不会在堆中乱扔无用的空字符串数组,否则每次调用函数时都会
new
卡尔曼的建议(见评论)也将有助于减少乱扔垃圾的现象,为了公平起见,我应该提到:
我更喜欢我的方法,因为它可能更容易使显式大小出错(例如,在错误的列表中调用
size()
)