欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

集合遍历

程序员文章站 2022-04-08 23:08:49
1、使用增强的for循环 此种方式可以遍历所有集合,但使用的是临时变量,只能访问集合元素,不能修改。 2、Collection集合可以使用自身的 forEach(Consumer action)方法,Consumer是一个函数式接口,只需实现 accept(element)方法。 此方式只能用于Co ......

 

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()方法来删除。