# Iterating through a List of 'Sets of integers'

5 posts / 0 new
heartin
Iterating through a List of 'Sets of integers'

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:

ALL THE BEST!!!

sneha
Program

This program has been rewritten below twice using iterator and using for-each.

List <Integer> sums=new ArrayList<Integer>();
Set<Integer> total=new HashSet<Integer>();
int sum=0;
while(itr.hasNext()){
total=(Set<Integer>) itr.next();
Iterator setitr=total.iterator();
while(setitr.hasNext()){
sum=sum+(Integer)setitr.next();
}
sum=0;
}
return sums;
}

TESTER METHODS
public static void main(String[] args){

Set<Integer> elem=new HashSet<Integer>();

elem=new HashSet<Integer>();

}

public static void printTheList(List<Integer> test){
for(int i:test){
System.out.println(i);
}

}

Was it useful?
heartin
Feedback
1. Set<Integer> total=new HashSet<Integer>(); is not needed, just initialize it to null.
2. Iterator itr=addList.iterator(); should be declared using generics as Iterator<Set<Integer>> itr=addList.iterator(); and then replace total=(Set<Integer>) itr.next(); with Iterator setitr=total.iterator(); inside while.
3. Could you also try using a foreach loop for iterating the list as it is a better and cleaner appraoch?

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'.

Was it useful?
sneha
Modified Program after Review with Iterator

List <Integer> sums=new ArrayList<Integer>();
Set<Integer> total=null;
int sum=0;
while(itr.hasNext()){
total=itr.next();
Iterator<Integer> setitr=total.iterator();
while(setitr.hasNext()){
sum=sum+setitr.next();
}
sum=0;
}
return sums;
}

Was it useful?
sneha
Modified Program after Review with ForEach

List <Integer> sums=new ArrayList<Integer>();
int sum=0;