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

这篇博客介绍了如何使用Java过滤掉ArrayList中的特定元素,并根据需要调整新数组的大小。作者提供了使用Arrays.asList()和removeAll()方法的代码示例,以及优化技巧,如使用EMPTY_STRING_ARRAY来避免创建无用的空字符串数组,从而减少内存浪费。此外,还讨论了不同方法的潜在错误,比如显式指定数组大小的风险。
摘要由CSDN通过智能技术生成

[如果你想要一些现成的代码,请滚动到我的“编辑3”(剪裁后)。其余的都是为子孙后代而来的。]List list = new ArrayList(Arrays.asList(array));list.removeAll(Arrays.asList("a"));array = list.toArray(array);

编辑:我现在正在使用Arrays.asList而不是Collections.singleton*Singleton仅限于一个条目,而asList方法允许您在以后添加其他字符串以筛选出:Arrays.asList("a", "b", "c").

Edit 2:上面的方法保留相同的数组(因此数组仍然是相同的长度);最后一个之后的元素被设置为NULL。如果你想新的数组大小与所需大小完全相同,请使用以下方法:array = list.toArray(new String[0]);

编辑3:如果您在同一个类中频繁使用此代码,您可能希望考虑将其添加到您的类中: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()在错误的名单上)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值