Я пытаюсь разбить массив на подмассивы по значению. Например (с удалением функции main
и удалением имени класса):
int[] arr = {1, 5, 3, 4, 2, 2, 5, 3, 1};
for (int i : splitByVal(arr)) {
System.out.println(i);
}
У меня уже есть один способ сделать это:
public int[][] splitByVal(arr) {
int prevItem = arr[0];
ArrayList<Integer[]> chunks = new ArrayList<Integer[]>();
ArrayList<Integer> currentChunk = new ArrayList<Integer>();
for (int i : arr) {
if (i == prevItem) {
currentChunk.add(i);
}
else {
chunks.add((Integer[]) currentChunk.toArray());
currentChunk.clear();
}
prevItem = i;
}
return chunks.toArray()
}
Что я хочу знать: Есть ли лучший способ сделать это?