栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

为了充实清洁工的想法:

List<String> list = new ArrayList<String>(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<String> 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()错误的列表)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号