# Design

Google loves to ask lots of question variations based on the [Iterator pattern](https://en.wikipedia.org/wiki/Iterator_pattern), so make sure you are familiar with the concept of iterators and how iterator works in principle. A good way to learn is to read open source code and try to code it yourself. For example, here is [Google's guava implementation of Peeking Iterator](https://github.com/google/guava/blob/6f22af40e1526b8c194e9e36d457bcd37680c6a3/guava/src/com/google/common/collect/Iterators.java#L1121).