Java Stream流编程

Stream流编程也是java8中的新特性。Stream是一个高级的迭代器,不是一个数据结构,不是一个集合,不会存放数据。它是将数据放在一个流水线中处理,在流水线的一边输入数据,在流水线的尾端得到结果,中间有一系列的操作。

外部迭代和内部迭代

先看代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.stream.IntStream;

public class StreamDemo1 {
public static void main(String[] args) {
int[] nums = {1,2,3};
//外部迭代
int sum = 0;
for(int i:nums){
sum += i;
}
System.out.println("结果为" + sum);
//使用stream的内部迭代
int sum2 = IntStream.of(nums).sum();
System.out.println("结果为" + sum2);
}
}

Java函数式编程及lambda

为什么要使用函数式编程

从jdk1.8开始,java开始支持函数式编程以及lambda表达式,本文简单描述一下函数式编程以及lambda表达式的常见使用方法。函数式编程是一种编程范式,他和命令式编程的区别有几点:

  • 最大区别在于关注点不同:命令式编程关注怎么做,函数式编程中关注做什么

例如,利用java实现找到最小的数,命令式编程的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class MinDemo{
public static void main(String[] args){
int[] nums = {34,45,65,11,-47,23,75};

int min = Integer.MAX_VALUE;
for(int i:nums){
if(i < min){
min = i;
}
}
System.out.println(min);
}
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×