当前位置: 移动技术网 > IT编程>开发语言>Java > 集合遍历

集合遍历

2019年05月21日  | 移动技术网IT编程  | 我要评论

 

1、使用增强的for循环

1  hashmap hashmap=new hashmap();
2         hashmap.put("name","张三");
3         hashmap.put("age",12);
4         hashmap.put("score",90);
5         for (object key:hashmap.keyset()){
6             system.out.println(key+" --> "+hashmap.get(key));
7         }

此种方式可以遍历所有集合,但使用的是临时变量,只能访问集合元素,不能修改。

 

 

2、collection集合可以使用自身的 foreach(consumer  action)方法,consumer是一个函数式接口,只需实现 accept(element)方法。

1 hashset hashset=new hashset();
2        hashset.add("张三");
3        hashset.add("李四");
4        hashset.add("王五");
5        //参数表示当前元素
6        hashset.foreach(ele-> system.out.println(ele));

此方式只能用于collection集合。

 

 

3、map集合也可以使用自身的forforeach(biconsumer action),biconsumer是一个函数式接口,只需要实现accept(key,value)方法。

1  hashmap hashmap=new hashmap();
2        hashmap.put("name","张三");
3        hashmap.put("age",18);
4        hashmap.put("score",90);
5        //2个参数,一个代表键,一个代表对应的值
6        hashmap.foreach((key,value)-> system.out.println(key+" --> "+value));

此方式只能用于map集合。

 

 

4、使用iterator接口

iterator即迭代器,可用的4个方法:

boolean  hasnext()

object  next()     获取下一个元素

void  remove()    删除当前元素

void  foreachremaining(consumer action)    可以使用lambda表达式遍历集合

1  hashset hashset=new hashset();
2        hashset.add("张三");
3        hashset.add("李四");
4        hashset.add("王五");
5        //获取迭代器对象
6        iterator iterator=hashset.iterator();
7        while (iterator.hasnext()){
8            system.out.println(iterator.next());
9        }
1 hashset hashset=new hashset();
2        hashset.add("张三");
3        hashset.add("李四");
4        hashset.add("王五");
5        //获取迭代器对象
6        iterator iterator=hashset.iterator();
7        iterator.foreachremaining(element-> system.out.println(element));

以上两种方式效果完全相同。

说明:

collection集合才能使用此方式,因为collection集合才提供了获取iterator对象的方法,map未提供。

list集合还可以使用 listiterator() 获取 listiterator对象,listiterator是iterator的子接口,使用方式和iterator完全相同,只是listiterator还提供了其它方法。

在循环体中不能使用集合本身的删除方法来删除元素,会发生异常。要删除,只能使用iterator类提供的remove()方法来删除。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网