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

[如果你想要一些现成的代码,请滚动到我的“编辑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”)。

编辑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);

然后,这将停止乱丢你的堆与无用的空字符串数组,否则每次调用函数时都会被新的。

cynicalman的建议(见评论)也将帮助堆乱丢垃圾,为了公平我应该提到它:

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

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

    原文作者:weixin_39654465
    原文地址: https://blog.csdn.net/weixin_39654465/article/details/114595321
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞