Arrays - in COBOL and Java

COBOL Java
declare nums = table of binary-long (1 2 3)

declare names as string occurs 5
*> Can also do:
declare names-again as string occurs any
set size of names to 5

set names(1) to "David"  *> first element indexed as 1
*> ...but can also use zero based subscripting:
set names[0] to "David"  *> first element indexed as 0

*>set names(6) to "Bobby"  *> throws System.IndexOutOfRangeException

*> COBOL does not have direct resizing syntax but achieves similar
*> results using 'reference modification' syntax:
declare names2 as string occurs 7
set names2[0:size of names] to names
*> Resizing to a smaller size is even simpler:
set names2 to names[0:3]

declare twoD as float-short occurs any, any.
declare rows as binary-long = 3
declare cols as binary-long = 10
set size of twoD to rows, cols

declare jagged = table of (table of binary-long(1 2)
                           table of binary-long(3 4 5)
                           table of binary-long(6 7 8 9))

*> Can also do:
declare jagged2 as binary-long occurs any, occurs any
set size of jagged2 to 3
set size of jagged2(1) to 5
set jagged2(1 5) to 5
public class Arrays
{
    public static void main(String args[])
    {
        int nums[] = { 1, 2, 3 };

        String names[] = new String[5];

        names[0] = "David";

        // names[5] = "Bobby"; // throws ArrayIndexOutOfBoundsException

        // Can't resize arrays in Java

        String names2[];

        // Copy elements from an array
        names2 = java.util.Arrays.copyOfRange(names, 0, 3);

        float twoD[][];

        int rows = 3;
        int cols = 10;

        twoD = new float[rows][cols];

        int[][] jagged = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };

        int[][] jagged2 = new int[3][];
        jagged[0] = new int[5];
        jagged[0][4] = 5;

    }

}

Portions of these examples were produced by Dr. Frank McCown, Harding University Computer Science Dept, and are licensed under a Creative Commons License.