## 迭代器模式 [![](https://github.com/frank-lam/fullstack-tutorial/raw/master/notes/JavaArchitecture/assets/Iterator-1.jpg)](https://github.com/frank-lam/fullstack-tutorial/blob/master/notes/JavaArchitecture/assets/Iterator-1.jpg) Collection 实现了 Iterable 接口,其中的 iterator() 方法能够产生一个 Iterator 对象,通过这个对象就可以迭代遍历 Collection 中的元素。 从 JDK 1.5 之后可以使用 foreach 方法来遍历实现了 Iterable 接口的聚合对象。 ~~~java List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); for (String item : list) { System.out.println(item); } ~~~ ## [](https://github.com/frank-lam/fullstack-tutorial/blob/master/notes/JavaArchitecture/02-Java%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6.md#适配器模式)适配器模式 java.util.Arrays.asList() 可以把数组类型转换为 List 类型。 ~~~java @SafeVarargs public static <T> List<T> asList(T... a) ~~~ 如果要将数组类型转换为 List 类型,应该注意的是 asList() 的参数为泛型的变长参数,因此不能使用基本类型数组作为参数,只能使用相应的包装类型数组。 ~~~java Integer[] arr = {1, 2, 3}; List list = Arrays.asList(arr); ~~~ 也可以使用以下方式生成 List。 ~~~java List list = Arrays.asList(1,2,3); ~~~