Stream
2024-08-22 18:23:42
Stream的好处
1、Stream AP的引入弥补了JAVA函数式编程的缺陷。
2、Stream相比集合类占用内存更小:集合类里的元素是存储在内存里的,Stream里的元素是在访问的时候才
被计算出来。(有点类似懒加载、延迟计算)
3、Stream可以创建无穷个数的集合。
代码示例
class NumSupplier implements Supplier<Long> {
long value = 0; public Long get() {
this.value = this.value + 1;
return this.value;
}
} /**
* 无穷集合
*/
public static void numTest(){
Stream<Long> natural = Stream.generate(new NumSupplier());
natural.map((x) -> {
return x * x;
}).skip(2).limit(20).forEach(System.out::println);
//转list stream has already been operated upon or closed
List<Long> collect = natural.collect(Collectors.toList());
}
Stream的方法
1、filter() 元素筛选
2、map() 元素变换/操作
3、forEach() 元素遍历
代码示例
/**
* Stream Test
*/
public static void streamTest(){
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Stream<Integer> stream = numbers.stream();
stream.filter(a->{
a += 10;
return a > 15;
}).map(a -> {
return a * a;
}).forEach(System.out::println);
}
最新文章
- (七)Maven使用的最佳实践
- python高级之操作数据库
- WAP端 穿透问题和解决方法
- 织梦5.7 TAG、标题、栏目以及keywords长度字符数限制修改
- DotNetBar RibbonControl 控件动态添加项
- VS2010编译Qt5.4.0静态库
- springmvc+hibernate入门-揭开神秘的面纱
- Python 全栈开发 -- 监控篇
- 微信小程序开发《三》:微信小程序请求不能使用session的原因及解决办法
- Spring 了解Bean的一生(生命周期)
- Analyze a docker instance start failure
- python pip 不能用报错: ImportError: No module named _internal
- 基于curl的异步http实现
- Phaser Matter Collision Plugin 碰撞插件 -- iFiero技术分享
- scvmm2008 错误 2921 0x8007054F
- select下拉箭头改变,兼容ie8/9
- 微信小程序如何在使用wx.request使用cookie
- oracle10g Error in invoking target &#39;install&#39; of makefile
- 多线程&;&;I/O
- systemtap如何写C函数 捎带着看看ret kprobe怎么用