给js数组原型添加一个过滤方法
js怎么处理执行数据?
js怎么处理执行数据?
Js常用数据处理方法
1.过滤 filter
2.排序 sort
3.去除数组指定元素 splice(元素开始,删除个数)
4.数组的元素全部符合条件返回true every
5.数组的元素任一项符合条件返回true some
java8 stream和foreach哪个效率高?
1. 问题描述
java8 stream和foreach哪个效率高?
问题结论
150W条数据以上:streamgtparalleStreamgtsimple
150W条数据以下:simplegtstreamgtparalleStream
从性能上考虑:小数据量用普通的forEach就可以,没有必要使用java8中的新出来的几种,已经在项目中使用的也不需要改回来,10W条也就几毫秒的差距。
2. 测试用例
import
import
public class ForEachMain {
public static void main(String[] args) {
// 实例化arrayList
ListltIntegergt arrayList new ArrayListltIntegergt()
int num 15000000
// 插入10万条数据
for (int i 0 i lt num i ) {
(i)
}
ListltIntegergt res new ArrayListltgt()
()
// 用foreach循环arrayList
long arrayForeachStartTime ()
for (Integer in : arrayList) {
(in)
}
long arrayForeachEndTime ()
(
用foreach循环arrayList (num) 次花费时间: (arrayForeachEndTime - arrayForeachStartTime) 毫秒)
()
// 用stream-foreach循环arrayList
long arrayStreamStartTime ()
().forEach(e -gt (e))
long arrayStreamEndTime ()
(
用Stream-foreach循环arrayList (num) 次花费时间: (arrayStreamEndTime - arrayStreamStartTime) 毫秒)
()
// 用parallelStream-foreach循环arrayList
long arrayParallelStreamStartTime ()
().forEach(e -gt (e))
long arrayParallelStreamEndTime ()
(用parallelStream-foreach循环arrayList (num) 万次花费时间:
(arrayParallelStreamEndTime - arrayParallelStreamStartTime) 毫秒)
}
}
2.1 当num 50000000时
用foreach循环arrayList 5000万次花费时间:2840毫秒
用stream-foreach循环arrayList 5000万次花费时间:507毫秒
用parallelStream-foreach循环arrayList 5000万次花费时间:1168毫秒
2.2 当num 500000时
用foreach循环arrayList 50万次花费时间:13毫秒
用stream-foreach循环arrayList 50万次花费时间:25毫秒
用parallelStream-foreach循环arrayList 50万次花费时间:35毫秒
2.3 当num 5000时
用foreach循环arrayList 5000次花费时间:1毫秒
用stream-foreach循环arrayList 0万次花费时间:16毫秒
用parallelStream-foreach循环arrayList 0万次花费时间:8毫秒
最直观的感觉,stream的流式处理应该比较快,这种想当然的推测,需要事实去佐证,运行过测试代码之后,发现并不是那么回事。耳听为虚,眼见为实,李子是不是涩的,最简单的方式是尝一口。请记住,编写代码时,一定要以最简洁为原则,毕竟运行程序的硬件成本会随着时间的推移在不断降低。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。