Ответ 1
Да, вы можете сделать это, создав DoubleStream
из массива, отфильтровывая негативы и преобразовывая поток обратно в массив. Вот пример:
double[] d = {8, 7, -6, 5, -4};
d = Arrays.stream(d).filter(x -> x > 0).toArray();
//d => [8, 7, 5]
Если вы хотите отфильтровать массив ссылок, который не является Object[]
, вам нужно будет использовать метод toArray
, который принимает IntFunction
, чтобы получить в результате получается массив исходного типа:
String[] a = { "s", "", "1", "", "" };
a = Arrays.stream(a).filter(s -> !s.isEmpty()).toArray(String[]::new);