There are two ways you can approach this. You create the array and then pre-initialise an ArrayList into every index in the array:
List<Integer>[] tab = new List[255];
Arrays.parallelSetAll(tab, ArrayList::new);
tab[0].add(1);
tab[0].add(2);
tab[0].add(2);
tab[0].add(3);
....
Or, just initialise the list on the array as you allocate it
List<Integer>[] tab = new List[255];
tab[0] = Arrays.asList(1, 2, 2, 3);
tab[1] = Arrays.asList(2, 3);
tab[2] = Arrays.asList(1);
Alternatively, you can just work with a two-dimensional integer array;
int[][] tab = new int[255][];
tab[0] = new int[] {1, 2, 2, 3};
tab[1] = new int[] {2, 3};
tab[2] = new int[] {1};
tab[0] = Arrays.asList(1, 2, 2, 3);...