У меня есть список целых чисел, и я хочу вернуть подсписки целых чисел из этого списка, используя потоки Java 8, где мой подсписок содержит все положительные целые числа из исходного списка непосредственно перед тем, как он встретит отрицательное целое число
Например скажем, в моем списке есть элементы
[1 , 2 , 0 , -1 , 5 , 8 , 9 , -11 , 7 , 13 ]
тогда я должен вернуть подсписки, содержащие
[1 , 2 , 0 ] [ 5 , 8 , 9 ] [7 , 13]
Я попробовал следующий подход, но он не работает, ваше направление и вклад очень важны.
package Java8;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
public class StreamsExamples {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(1);
arr.add(2);
Integer[] al = new Integer[]{0,-1,5,8,9,-11,7,13};
arr.addAll(Arrays.asList(al));
arr.stream().collect(Collectors.groupingBy(Functionality::getPositiveList));
// arr.stream().collect(Collectors.toList()).;
//arr.stream().sorted().forEach(System.out::print);
}
}
class Functionality{
public List<List<Integer>> getPositiveList(List<Integer> list){
List<List<Integer>> li = new ArrayList<List<Integer>>();
List<Integer> a = new ArrayList<Integer>();
for(int i=0;i<list.size();i++) {
if(list.get(i)>=0) {
a.add(list.get(i));
}
else if (list.get(i)<0) {
li.add(a);
a.clear();
}
}
return li;
}
}