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

在Java中为列表的列表成员赋值,java,list,arraylist,Java,List,Arraylist,我想让这段代码打印Pascal三角形,我需要将generate()的输出设置为List我一直在苦苦挣扎,主要是因为我不习惯迭代并将值分配给List的List。你能帮我想出解决办法吗?我不是在寻找新奇的解决方案 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class PascalTriangle { public static long biCoeff(int n,

我想让这段代码打印Pascal三角形,我需要将generate()的输出设置为
List
我一直在苦苦挣扎,主要是因为我不习惯迭代并将值分配给List的List。你能帮我想出解决办法吗?我不是在寻找新奇的解决方案

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);
    }
}

您必须先添加
列表
,才能添加项目

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;
}
公共静态列表生成(int numRows){
列表l=新的ArrayList();

对于(int i=0;i请尝试以下生成方法的代码:

public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> l = new ArrayList<List<Integer>>();
        for (int i = 0; i < numRows; i++) {
            l.add(i, new ArrayList<Integer>());
            for (int j = 0; j <= i; j++){
                l.get(i).add((int) biCoeff(numRows, j));
            }
        }
        return l;
    }
公共静态列表生成(int numRows){
列表l=新的ArrayList();
对于(int i=0;i对于(int j=0;j)它说:列表是抽象的,不能在您告诉添加的行中实例化,而是选择
List
的一个实现:例如:
new java.util.ArrayList()
initialize List first.new arrarylist();你知道在每一张纸的末尾打印一张纸的诀窍是什么吗?检查更新的答案。或者请给我你想要的图案。
public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> l = new ArrayList<List<Integer>>();
        for (int i = 0; i < numRows; i++) {
            l.add(i, new ArrayList<Integer>());
            for (int j = 0; j <= i; j++){
                l.get(i).add((int) biCoeff(numRows, j));
            }
        }
        return l;
    }
import java.util.ArrayList;
import java.util.List;

public class Pascal {
    static List<List<Integer>> l = new ArrayList<List<Integer>>();
    public static void main(String[] args) {
        int noOfRows = 5;
        int counter = 0;
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        generate(list, counter, noOfRows);
        System.out.println(l);
    }

    public static List<Integer> generate(List<Integer> list, int counter, int noOfRows) {
        l.add(list);
        List<Integer> tempList = new ArrayList<Integer>();
        tempList.add(1);
        for (int i = 1; i < list.size(); i++) {
            tempList.add(list.get(i) + list.get(i - 1));
        }
        tempList.add(1);
        if (counter != noOfRows)
            generate(tempList, ++counter, noOfRows);
        return tempList;
    }
}