I want to optimize following code:
List<Integer> numbers = Arrays.asList(5, 3, 2, 8);
// sorted Array of all numbers>2
Arrays.asList(sortWithCondition(numbers, i -> i > 2)).forEach(
data -> System.out.println("MM=" + data));
public static Integer[] sortWithCondition(List<Integer> numbers,
Predicate<Integer> predicate) {
IntStream intStream = numbers.parallelStream().filter(predicate)
.mapToInt(i -> i).sorted();
Object[] objArray = intStream.boxed().collect(Collectors.toList())
.toArray();
Integer[] intArray = new Integer[objArray.length];
for (int j = 0; j < intArray.length; j++) {
intArray[j] = (Integer) objArray[j];
}
return intArray;
}
}
Output: MM=3 MM=5 MM=8
I want to sort number if particular condition satisfied.
How to convert Stream<Integer>
to Integer[]
directly?
and
How to convert IntStream
to Integer[]
directly?