image.png**

produces

  • 通过Map可以生成Collection ```java Set keySet();
  1. Collection<V> values();
  2. Set<Map.Entry<K, V>> entrySet();
  1. > - 通过Collection可以生成Iterator
  2. > ```java
  3. Iterator<E> iterator();
  • 通过List可以生成ListIterator ```java ListIterator listIterator();
  1. ListIterator<E> listIterator(int index);
  1. > ![image.png](https://cdn.nlark.com/yuque/0/2021/png/2602548/1614068081949-411efd63-a4b7-4eed-8491-7d03987c2639.png#align=left&display=inline&height=27&margin=%5Bobject%20Object%5D&name=image.png&originHeight=54&originWidth=39&size=1501&status=done&style=none&width=19.5)表示接口之间的继承或者抽象类实现接口;![image.png](https://cdn.nlark.com/yuque/0/2021/png/2602548/1614068246736-1985aa5a-ece6-4579-a242-a77f878d2d86.png#align=left&display=inline&height=25&margin=%5Bobject%20Object%5D&name=image.png&originHeight=49&originWidth=31&size=1373&status=done&style=none&width=15.5)表示类之间的继承
  2. <a name="M8taN"></a>
  3. ## Iterator
  4. 迭代器,用于迭代
  5. ```java
  6. // 迭代中如果还有元素就返回true
  7. boolean hasNext();
  8. // 返回迭代中的下一个元素。如果迭代没有更多的元素返回NoSuchElementException
  9. E next();
  10. /**
  11. * 从集合中移除迭代器返回的最后一个元素
  12. * 迭代过程中如果集合自身被修改,该迭代器行为是未指定的,可能会抛出异常,
  13. * 这时候使用这个迭代器本身的remove方法就不会出现这些问题
  14. */
  15. default void remove() {
  16. throw new UnsupportedOperationException("remove");
  17. }
  18. // 对集合中剩余的元素进行操作,直到元素完毕或者抛出异常
  19. default void forEachRemaining(Consumer<? super E> action) {
  20. Objects.requireNonNull(action);
  21. while (hasNext())
  22. action.accept(next());
  23. }

ListIterator

可以双向迭代,next()查下一个元素,previous()查前一个元素
image.png

  1. // Query Operations
  2. // 列表向后遍历有元素,返回true
  3. boolean hasNext();
  4. // 返回列表中的下一个元素,如果迭代没有下一个元素,则抛出NoSuchElementException
  5. E next();
  6. // 列表向前遍历有元素,返回true
  7. boolean hasPrevious();
  8. // 返回列表中的前一个元素,如果迭代没有前一个元素,则抛出NoSuchElementException
  9. E previous();
  10. // 返回后续调用next将返回的元素的索引(如果列表迭代器位于列表的末尾,则返回列表大小)
  11. int nextIndex();
  12. // 返回将由后续调用previous返回的元素的索引(如果列表迭代器位于列表的开头,则返回-1)
  13. int previousIndex();
  14. // Modification Operations
  15. /**
  16. * 从列表中删除next或previous(可选操作)返回的最后一个元素
  17. * 每次调用next或previous只能调用一次
  18. * 只有在最后一次对next或previous的调用之后没有调用add时,才可以执行此操作
  19. */
  20. void remove();
  21. /**
  22. * 用指定的元素替换next或previous返回的最后一个元素(可选操作)
  23. * 只有在上次对next或previous的调用之后既没有调用remove也没有调用add时,才能执行此调用
  24. */
  25. void set(E e);
  26. /**
  27. * 将指定的元素插入到列表中(可选操作)
  28. */
  29. void add(E e);

Collection

public interface Collection extends Iterable {
……
} 02、集合框架 - 图3image.png
image.png

Map

public interface Map {
……
}
image.png
image.png