Create a method that accept a List of 'Sets of integers' and return a list with the sums of all 'Sets of integers' in the input list.
Sample Input and Output:
A sample input will a list with 2 sets with values (1,2,3) and (4,5). The method will have to return a list with values 6 and 9.
HINT:
Method signature will look like:
public List<Integer> addAll(List<Set<Integer>> addList)
ALL THE BEST!!!
public static List<Integer> addAll(List<Set<Integer>> addList){
List <Integer> sums=new ArrayList<Integer>();
Set<Integer> total=new HashSet<Integer>();
int sum=0;
Iterator itr=addList.iterator();
while(itr.hasNext()){
total=(Set<Integer>) itr.next();
Iterator setitr=total.iterator();
while(setitr.hasNext()){
sum=sum+(Integer)setitr.next();
}
sums.add(sum);
sum=0;
}
return sums;
}
TESTER METHODS
public static void main(String[] args){
Set<Integer> elem=new HashSet<Integer>();
List<Set<Integer>> addList=new ArrayList<Set<Integer>>();
elem.add(1);elem.add(2);elem.add(3);
addList.add(elem);
elem=new HashSet<Integer>();
elem.add(4);elem.add(5);
addList.add(elem);
printTheList(addAll(addList));
}
public static void printTheList(List<Integer> test){
for(int i:test){
System.out.println(i);
}
}
NOTE: If rewriting, add a note to the original one that it has been rewritten and give the new one a title 'Modified Program after Review with Iterator' and '''Modified Program after Review with ForEach'.
public static List<Integer> addAll(List<Set<Integer>> addList){
List <Integer> sums=new ArrayList<Integer>();
Set<Integer> total=null;
int sum=0;
Iterator<Set<Integer>> itr=addList.iterator();
while(itr.hasNext()){
total=itr.next();
Iterator<Integer> setitr=total.iterator();
while(setitr.hasNext()){
sum=sum+setitr.next();
}
sums.add(sum);
sum=0;
}
return sums;
}
public static List<Integer> addAll(List<Set<Integer>> addList){
List <Integer> sums=new ArrayList<Integer>();
int sum=0;
for(Set<Integer> set: addList){
for(int s:set){
sum=sum+s;
}
sums.add(sum);
sum=0;
}
return sums;
}