Iterating through a List of 'Sets of integers'

5 posts / 0 new
Last post
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: 

public List<Integer> addAll(List<Set<Integer>> addList)

ALL THE BEST!!!

Was it useful?
sneha
Program

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

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);
        }
        
    }
 

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

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;
    }

Was it useful?
sneha
Modified Program after Review with ForEach

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;
    }

Was it useful?

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)