java对象数组删除_如何从Java中的数组中删除对象?

小编典典

[如果需要一些现成的代码,请滚动到我的“ Edit3”(剪切后)。其余的供后代使用。]

为了充实清洁工的想法:

List list = new ArrayList(Arrays.asList(array));

list.removeAll(Arrays.asList("a"));

array = list.toArray(array);

编辑:我现在使用Arrays.asList而不是Collections.singleton:单例仅限于一个条目,而该asList方法允许你添加其他字符串以稍后过滤:Arrays.asList("a", "b", "c")。

Edit2:以上方法保留了相同的数组(因此数组的长度仍然相同);最后一个元素之后的元素设置为null。如果你希望新阵列的大小完全符合要求,请改用以下方法:

array = list.toArray(new String[0]);

Edit3:如果你经常在同一堂课中使用此代码,则不妨考虑将其添加到你的课中:

private static final String[] EMPTY_STRING_ARRAY = new String[0];

然后该函数变为:

List list = new ArrayList<>();

Collections.addAll(list, array);

list.removeAll(Arrays.asList("a"));

array = list.toArray(EMPTY_STRING_ARRAY);

然后,这将停止使用无用的空字符串数组乱堆你的堆,否则将在new每次调用函数时对其进行编辑。

愤世嫉俗的人的建议(请参阅评论)也将有助于解决乱扔垃圾的问题,为公平起见,我应该提一下:

array = list.toArray(new String[list.size()]);

我更喜欢我的方法,因为错误显示的大小可能更容易(例如,调用size()错误的列表)。

2020-02-27

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值