(1):使用聚合操作
在JDK 8和更高版本中,迭代集合可以通过获取流并对其执行聚合操作。聚合操作通常与lambda表达式结合使用,使编程更具表现力,使用较少的代码行。以下代码顺序遍历一组形状并打印出红色对象:
myShapesCollection.stream()
.filter(e - > e.getColor()== Color.RED)
.forEach(e - > System.out.println(e.getName()));
使用此API处理数据有许多不同的方法。例如,您可能需要将a的元素转换Collection为String对象,并用逗号分隔:
String joined = elements.stream()
.map(Object :: toString)
.collect(Collectors.joining(“,”));
也可以总结所有员工的工资:
int total = employees.stream()
.collect(Collectors.summingInt(Employee :: getSalary)));
性能方面在有并行操作的情况下,Stream效率是更高的。但在比较简单的迭代中stream效率是没什么优势的。
总而言之Stream充分利用了lambda表达式,增强了集合操作,代码很简洁优雅,绝对值得一用。
(2)foreach
这种迭代方式比较简单,相信大家都知道。这里就不赘述了。
(3)Iterator
迭代器也是常用的迭代方法之一。具体使用方法如下:
Iterator iterList= list.iterator();//List接口实现了Iterable接口
while(iterList.hasNext()){
String strList=(String)iterList.next();
System.out.println(strList.toString());
}
迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部.