question: boolean runAfter ( List tasks , int size ) ;
target:  Return true if this task must be run after at least one task in the given task list with an index less than size (size may be less then tasks.size()).  Using List.get will be more efficient than List.iterator.