gpt4 book ai didi

java - 在Java中为列表列表的成员赋值

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:41:48 25 4
gpt4 key购买 nike

我希望此代码打印 Pascal 三角形并且我需要将 generate() 的输出设为 List<List<Integer>>我一直在苦苦挣扎,主要是因为我不喜欢迭代并将值分配给列表列表。你能帮我想出解决办法吗?我不是在寻找花哨的解决方案!

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class PascalTriangle {

public static long biCoeff(int n, int k) {
if (n==k) {
return (long) 1;
}
if (n==0) {
return (long) n;
}

return (biCoeff(n-1, k-1)+biCoeff(n-1,k));
}

public static List<List<Integer>> generate(int numRows) {
List<List<Integer>> l = new ArrayList<>();
for (int i=0; i<numRows; i++) {
for (int j=0; j<l.get(i).size(); j++) {
l.get(i).add((int) biCoeff(numRows, j));
}

}
return l;
}


public static void main(String[] args){
generate(5);
}
}

错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at PascalTriangle.generate(PascalTriangle.java:25)
at PascalTriangle.main(PascalTriangle.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

Process finished with exit code 1

最佳答案

你必须添加一个 List先添加项目。

public static List<List<Integer>> generate(int numRows) {
List<List<Integer>> l = new ArrayList<>();
for (int i=0; i<numRows; i++){
l.add(new List<Integer>()); // add this line
//l.get(i).add((int) biCoeff(numRows, i));
for (int j=0; j<l.get(i).size(); j++) {
l.get(i).add((int) biCoeff(numRows, j));
}

}
return l;
}

实际上这段代码不会编译,因为List是一个接口(interface),您不能创建它的实例。您将必须选择一个实现 List 的类并使用它代替 new List<Integer>() .例如,new java.util.ArrayList<Integer>()

关于java - 在Java中为列表列表的成员赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35860028/

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