This document compares the performance of for loops, iterators, and Java 8 streams for processing collections of objects. It describes benchmark tests performed on different collection sizes ranging from 10 to 1,000,000 objects. The tests focused on common collection operations like finding the youngest/highest paid object, filtering by a property, and grouping by a property. The results showed that streams were generally faster than for loops for larger collections (>1000 objects) but slower for smaller collections. Iterators had the best performance overall. The document concludes that while streams offer a functional programming style, traditional for loops may still be better for smaller collections or certain object types due to stream overhead.