gpt4 book ai didi

java - 创建 ArrayList 的 ArrayList

转载 作者:搜寻专家 更新时间:2023-11-01 02:14:35 25 4
gpt4 key购买 nike

我正在尝试使用下面的代码创建多维 ArrayList。我的代码很好地填充了内部 ArrayList (localSolutions),但是当我尝试将该 ArrayList 添加到外部 ArrayList (solutions) 时,出现了问题,它添加了空的 ArrayList。

public class MathCapstone {

public static void main(String[] args) {
ArrayList<ArrayList<Integer>> list = entireList(10);

for(int q = 0;q<list.size();q++) {
System.out.println(list.get(q));
}

public static ArrayList<ArrayList<Integer>> entireList(int max) {
ArrayList<ArrayList<Integer>> solutions = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> localSolutions = new ArrayList<Integer>();

for(int i = 1; i <= max; i++) {
for(int j = 1; j < i; j++) {
//System.out.println(j + "mod" + i + "=" + (j*j)%i);
if ((j*j)%i == 1) {
localSolutions.add(j);
}
}
//System.out.println(localSolutions.toString());
solutions.add(localSolutions);
localSolutions.clear();
}
return solutions;
}

最后一点:使用 ArrayLists 的 HashMap 会更好吗(最终我将为最大值大约 10k 创建 CDF)?

最佳答案

您正在清除 localSolutions 列表。

在 Java 中,您只能按值复制对对象的引用,而不是实际对象本身。因此,当您在 solutions 列表中添加 localSolutions 列表时,localSolutions 引用和 solutions 的第一个条目> 列表,指向同一个对象。

因此,当您清除localSolutions 列表时,您实际上清除了solutions 列表中的第一个条目。

关于java - 创建 ArrayList<Integer> 的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9122638/

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