public static List cellCompete(int[] states, int days) { int edge = 0; int counter = 1; int[] temp = new int[states.length]; while (counter <= days) { for (int i = 0; i <= states.length - 1; i++) { if (i == 0) { temp[i] = states[i + 1] == edge ? 0 :1; } else if (i == states.length - 1) { temp[i] = states[i - 1] == edge ? 0 : 1; } else { temp[i] = states[i - 1] == states[i + 1] ? 0 : 1; } } counter++; System.arraycopy(temp, 0, states,0, states.length); } List list = Arrays.stream(states).boxed().collect(Collectors.toList()); return list; }