gpt4 book ai didi

java - 将 ArrayList 的子列表转换为 ArrayList

转载 作者:IT老高 更新时间:2023-10-28 20:57:02 26 4
gpt4 key购买 nike

我正在使用一个 ArrayList 并且我试图将它的一部分复制到另一个 ArrayList 因此我正在使用:

sibling.keys = (ArrayList<Integer>) keys.subList(mid, this.num);

其中“sibling.keys”是新的 ArrayList,“keys or this.keys”是旧的 ArrayList。我使用了强制转换,因为 eclipse 告诉我这样做,但随后它抛出了 ClassCastException:

java.util.ArrayList$SubList cannot be cast to java.util.ArrayList

有什么建议吗?

最佳答案

subList在现有列表上返回 view。这不是 ArrayList .您可以创建它的副本:

sibling.keys = new ArrayList<Integer>(keys.subList(mid, this.num));

或者,如果您对 View 行为感到满意,请尝试更改 sibling.keys 的类型只是List<Integer>而不是 ArrayList<Integer> ,这样你就不需要复制了:

sibling.keys = keys.subList(mid, this.num);

但重要的是您要了解其中的区别 - 您是否要变异 sibling.keys (例如,为其添加值或更改现有元素)?你要变异keys ?您希望一个列表的突变影响另一个列表吗?

关于java - 将 ArrayList 的子列表转换为 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16644811/

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