Java 8新特性:流和函数式编程实例
在Java 8中,引入了新的流(Stream)处理方式以及函数式编程的一些特性。以下是一些实例:
流的创建:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<Integer> ages = IntStream.range(20, 61)
.mapToObj(age -> age))
.collect(Collectors.toList());
这里使用
IntStream.range()
创建年龄流,然后使用mapToObj()
将每个年龄映射到一个对象,最后收集为列表。流的操作:
```java
// 求和
Integer totalAge = ages.stream()
.mapToInt(age -> age))
.sum();
// 查找特定元素
Optional
.filter(name -> name.equals(“Alice”))))
.findFirst();
// 去重并排序
List
.collect(Collectors.toSet()))
.sorted();
这里分别对年龄流进行了求和、查找特定元素的操作,以及去重并排序操作。
3. **lambda表达式**:
Java 8引入了lambda表达式,使得代码更加简洁明了。例如:
```java
// 简化过滤条件
names = names.stream()
.filter(n -> n.startsWith("A"))))
.collect(Collectors.toList());
这里直接使用lambda表达式简化了过滤条件的编写。
还没有评论,来说两句吧...