迭代器(Iterator)
-
概述:Iterator 是个接口,迭代器是集合的专用遍历方式
-
使用方法,我们想要使用迭代器,必须首先得到集合对象,通过集合对象生成迭代器对象,才能进行集合的遍历
-
常用方法:
方法 作用 Iterator iterator() 返回集合迭代器对象 E next() 返回迭代中的下一个元素 boolean hasNext() 判断集合中有无元素,有返回 true,无返回 false -
遍历模板
// 1、创建集合对象,添加元素就不写了 ArrayList<String> alist = new ArrayList<String>(); // 2、创建迭代器对象 Iterator it = alist.iterator(); // 3、通过迭代器遍历 while(it.hasNext()){ String s = it.next(); }
增强 for 循环
-
foreach概述:底层实际用的是迭代器实现(jdk5之后出现),但是大大简化了代码的编写
-
好处:简化数组和 Collection 集合的遍历,实现 Iterator 接口的类允许其对象成为增强 for 语句的目标
-
格式:
for(元素数据类型 变量名 : 数组或者集合(单列)){ //此处直接使用变量即可,该变量就是元素 }
-
遍历模板
// 1、创建集合对象 ArrayList<String> alist = new ArrayList<String>(); // 2、foreach 遍历集合 for(String s : alist){ // s 就是代表遍历过程中 的单个集合对象 }
普通 for 循环
-
概述:操作的时候如果需要用到索引,使用普通 for 循环
-
常用方法:
方法 | 作用 |
---|---|
int size(); | 返回集合中元素个数 |
E get(int index); | 返回指定 索引位置 元素对象 |
- 遍历模板:
ArrayList<String> alist = new ArrayList<String>();
for(int i=0; i<alist.size(); i++){
//返回指定位置的元素对象
ArrayList list = arrays.get(i);
}
注意:普通 for 循环,可以获得指定位置的元素
Map 集合的两种遍历方式
- 遍历方式一
// 遍历方法一
public static void show(Map<Integer,String> map){
// 1、获取所有键的集合
Set<Integer> keySet = map.keySet();
// 2、根据键获取值
for (Integer key : keySet) {
// 根据键获取值
String s = map.get(key);
System.out.println(key + " --- " + s);
}
}
- 遍历方式二
// 遍历方法二
public static void print(Map<Integer,String> map){
// 1、获取所有键值对的集合
Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
// 2、遍历
for (Map.Entry<Integer, String> es : entrySet) {
System.out.println(es.getKey() + " --- " + es.getValue());
}
}