gpt4 book ai didi

java - 普通数组的列表操作

转载 作者:行者123 更新时间:2023-12-01 15:02:10 24 4
gpt4 key购买 nike

我正在寻找一种方法来“自动化”所有所需的转换,以使列表操作可用于普通数组。问题是

public static Object[] arrayRemoveAll(Object[] oA, Object[] removeA) {
List<Object> l = new ArrayList<Object>(Arrays.asList(oA));
l.removeAll(Arrays.asList(removeA));
return l.toArray(new Object[l.size()]);
}

当我尝试将对象转换回其原始数组类型时(例如,如果我调用 (String[])arrayRemoveAll(strA, strA2)),总是给出 ClassCastException。

我明白为什么会发生这种情况,但是有什么巧妙的方法可以避免这种情况吗?我希望能够使用通用函数来执行某些标准列表操作。

提前非常感谢。

最佳答案

怎么样

public static <T> T[] arrayRemoveAll(T[] oA, Object[] removeA) {
List<T> l = new ArrayList<T>(Arrays.asList(oA));
l.removeAll(Arrays.asList(removeA));
return l.toArray(Arrays.copyOf(oA, l.size()));
}

不过,就我个人而言,我会避免所有转换到列表并手动编写循环的成本开销。它并没有变得更冗长。

此外,如果您已经在使用 Commons Lang,它具有 ArrayUtils#removeElements .

关于java - 普通数组的列表操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13485342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com