### Question:
PairList implements Iterable<Pair<K, V>> { @Override public Iterator<Pair<K, V>> iterator() { return new Itr(); } PairList();  PairList(int initialCapacity);  PairList(List<K> keys, List<V> values);  PairList(List<Pair<K, V>> list);  PairList(Map<K, V> map); void add(int index, K key, V value); void add(K key, V value); void add(Pair<K, V> pair); void addAll(PairList<K, V> other); int size(); boolean isEmpty(); Pair<K, V> get(int index); V get(K key); K keyAt(int index); V valueAt(int index); List<K> keys(); List<V> values(); K[] keyArray(K[] target); V[] valueArray(V[] target); V remove(K key); V remove(int index); PairList<K, V> subList(int fromIndex); PairList<K, V> subList(int fromIndex, int toIndex); Stream<Pair<K, V>> stream(); boolean contains(K key); PairList<K, V> unique(); @Override Iterator<Pair<K, V>> iterator(); Map<K, V> toMap(); Map<K, V> toMap(boolean checkDuplicate);  }### Answer:
@Test(expectedExceptions = NoSuchElementException.class) public void testIteratorException() { PairList<String, String> pairs = new PairList<>(); pairs.iterator().next(); }