List 의 subList(originalList, startIdx, endIdx)

// 리스트의 인덱스 3부터 7까지 (7은 포함되지 않음) 잘라내기
List<Integer> subList = originalList.subList(3, 7);

Stream 으로 배열 합치기 - flatMapToInt

return Arrays.stream(intervals)
            .flatMapToInt(ints -> Arrays.stream(Arrays.copyOfRange(arr, ints[0], ints[1] + 1)))
            .toArray();

배열 합치기

1. System.arraycopy() (가장 빠름)

int[]arr1= {1,2,3};
int[]arr2= {4,5,6};

int[]result=newint[arr1.length+arr2.length];

System.arraycopy(arr1,0,result,0,arr1.length);
System.arraycopy(arr2,0,result,arr1.length,arr2.length);

System.out.println(Arrays.toString(result));

출력

[1, 2, 3, 4, 5, 6]

2. Stream 사용

int[]result=IntStream.concat(
Arrays.stream(arr1),
Arrays.stream(arr2))
.toArray();

3. 반복문

int[]result=newint[arr1.length+arr2.length];

for (inti=0;i<arr1.length;i++) {
result[i]=arr1[i];
}

for (inti=0;i<arr2.length;i++) {
result[arr1.length+i]=arr2[i];
}