Lists and arrays can both be used to store ordered collections of data. Both have their strengths and weakness which we shall discuss in a later post.

Previously we showed you how to generate Pascals Triangle and in that Java example we used arrays to represent each row of the triangle.

The following code shows what the code would look like if we replace the use of arrays with List’s.

package com.learnjava.math;
import java.util.ArrayList;
import java.util.List;
/**
* Write a Java program that calculates the
* first 10 lines of a Pascals Triangle
*
* @author http://learn-java-by-example.com
*
*/
public class PascalTriangleUsingList {
public static void main(String[] args) {
int n = 10;
List<Integer> row = new ArrayList<Integer>();
for (int i=0; i<n; i++) {
// Calculate next row
row = pascalRow(row);
// Output row
// First add some padding so triangle is centered
for (int j=0; j< n - i; j++) {
System.out.print(" ");
}
// Now output the row values
for (int j=0; j< row.size(); j++) {
System.out.print(row.get(j)+" ");
}
System.out.println();
}
}
public static List<Integer> pascalRow(List<Integer> previous) {
// Row is 1 element longer than previous row
List<Integer> row = new ArrayList<Integer>(previous.size() + 1);
// Initialise the list
// Unlike arrays, a list is empty until we add values to it
for (int i=0; i<previous.size()+1; i++) {
row.add(0);
}
// First and last numbers in row are always 1
row.set(0, 1);
row.set(row.size() - 1, 1);
// The rest of the row can be
// calculated based on previous row
for (int i = 1; i< row.size()-1; i++) {
row.set(i, previous.get(i-1) + previous.get(i));
}
return row;
}
}

*Related*

Sandy Leehow come when i seperate the main and the Arraylist into two classes

row1 = pascalRow(row1); gets error and say i need to create it and i did do

PascalTriangle pas = new PascalTriangle();

Thank You

Learn Java By ExampleThats because the pascalRow() method is then in a different class

You would need to use:

row1 = pas.pascalRow(row1);