Override if you have an efficient implementation. In general this is when the input supports random access.