资源说明: Java8之Stream流代替For循环操作
Java8中引入了Stream流代替For循环操作,具有很好的参考价值,希望对大家有所帮助。Stream流代替For循环进行输出可以使代码更简洁。
Stream流的优点
1. 代码简洁:使用Stream流可以使代码变得更加简洁和易读。
2. 高效率:Stream流可以自动并行处理,提高了处理速度。
3. 函数式编程:Stream流支持函数式编程,能够更加灵活地处理数据。
实体类Emp
public class Emp {
private String id;
private String name;
public Emp(String id, String name) {
this.id=id;
this.name=name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Emp信息: [id=" + id + ", name=" + name + "]";
}
}
原始For写法
List emps = new ArrayList<>();
emps.add(new Emp("00101","张三"));
emps.add(new Emp("00102","张四"));
emps.add(new Emp("00103","张五"));
emps.add(new Emp("00104","张六"));
emps.add(new Emp("00105","张七"));
for (Emp emp : emps) {
if (emp.getName().equals("张三")) {
System.out.println(emp);
return;
}
}
Stream流
List emps = new ArrayList<>();
emps.add(new Emp("00101","张三"));
emps.add(new Emp("00102","张四"));
emps.add(new Emp("00103","张五"));
emps.add(new Emp("00104","张六"));
emps.add(new Emp("00105","张七"));
List emp=emps.stream().filter(e -> "张三".equals(e.getName())).collect(Collectors.toList());
emp.forEach(System.out::println);
补充知识:Java中for、foreach、stream性能比较
在开发中循环遍历一个数组经常会用到,jdk8推出了一些新特性,对循环做了比较,通过代码亲测,记录一下!
1. for循环
public static void main(String[] args) {
Long startTime = System.currentTimeMillis();
formMethod();
Long endTime = System.currentTimeMillis();
System.out.println("result:" + (endTime - startTime));
}
public static void formMethod(){
for (int i = 0; i < 10000; i++) {
System.out.println("start::::::::::::");
}
}
2. foreach循环(for循环的增强版)
public static void main(String[] args) {
List list = new ArrayList();
for (int i = 0; i < 10000; i++) {
list.add(i);
}
Long startTime = System.currentTimeMillis();
foreachMethod(list);
Long endTime = System.currentTimeMillis();
System.out.println("result:" + (endTime - startTime));
}
从以上代码可以看到,Stream流代替For循环操作可以使代码变得更加简洁和高效。同时,Stream流也支持函数式编程,能够更加灵活地处理数据。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。