I have written the following method to generate power set using Java 8 map function
public static List<List<Integer>> powerSet(List<Integer> arr){
List<List<Integer>> powerSet = new ArrayList<>();
powerSet.add(new ArrayList<>());
if(arr.size <= 0)
return powerSet;
for(Integer elem:arr) {
powerSet.stream().map(p -> addSubset(powerSet, p, elem)).collect(Collectors.toList());
}
return powerSet;
}
public static List<List<Integer>> addSubset(List<List<Integer>> powerSet, List<Integer> p, int elem){
List<Integer> newSubset = p;
newSubset.add(elem);
powerSet.add(newSubset);
return powerSet;
}
I always get Concurrent Modification exception. How can I modify this code to generate power set of list?