gpt4 book ai didi

java - 在java中不修改原始列表的子列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:43 26 4
gpt4 key购买 nike

下面的代码实际上修改了原始列表x。考虑到对子列表的修改不应修改原始列表,是否有对主列表进行子列表的方法?

List<Integer> x = new ArrayList<Integer>();

x.add(1);
x.add(2);
x.add(3);
x.add(4);
x.add(5);

List<Integer> y = new ArrayList<Integer>();

y.add(1);
y.add(2);
y.add(3);

final List<Integer> z = x.subList(0, 4);

System.out.println("sublist " + z.toString());

z.removeAll(y);

System.out.println("Main list after removing sublist " + x.toString());

结果:

sublist [1, 2, 3, 4]
Main list after removing sublist [4, 5]

最佳答案

尝试使用List<Integer> z = new ArrayList<>(x.subList(0, 4))

   List<Integer> x = new ArrayList<Integer>();
x.add(1);
x.add(2);
x.add(3);
x.add(4);
x.add(5);

List<Integer> y = new ArrayList<Integer>();
y.add(1);
y.add(2);
y.add(3);

final List<Integer> z = new ArrayList<>(x.subList(0, 4));

System.out.println("sublist " + z.toString());

z.removeAll(y);

System.out.println("Main list after removing sublist " + x.toString());

输出:

sublist [1, 2, 3, 4]
Main list after removing sublist [1, 2, 3, 4, 5]

关于java - 在java中不修改原始列表的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20248070/

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