public interface Processor<T> { public void process(T object); }
And then the helper method:
public static <T> void processAll(Collection<T> items, Collection<? extends Processor<T>> processors) { Iterator<T> i = items.iterator(); Iterator<? extends Processor<T>> p = processors.iterator(); while(i.hasNext() && p.hasNext()) p.next().process(i.next()); }
You can put this helper method in a class that uses it if there is only one (and make it private
), or put it in a utility class that is shared by the entire program.
Of course, there are other ways to encode processAll
; for example, you can use the for
loop in one of the collections. But in any case, breaking this low-level code in a helper method will make your higher-level code cleaner and less "noisy." And if you do something similar in several parts of the program, they can share a helper method.
source share