flutter三种循环比较
forEach循环数组中的每个元素会通过forEach进行一些改变,会改变原数组map循环数组中的元素并进行一些改变后返回一个新数组一般的for、forEach、map耗时比较var list = List();for (var i = 0; i < 1000000; i++) {list.add(i);}int forStart = DateTime.now().microsecondsS
·
for、forEach、map三种遍历
循环数组中的元素并进行一些改变后返回一个新数组
一般的for、forEach、map耗时比较
var list = List();
for (var i = 0; i < 1000000; i++) {
list.add(i);
}
int forStart = DateTime.now().microsecondsSinceEpoch;
for (var i = 0; i < list.length; i++) {}
int forEnd = DateTime.now().microsecondsSinceEpoch;
print('for = ${forEnd - forStart}');
int forEachStart = DateTime.now().microsecondsSinceEpoch;
list.forEach((element) {});
int forEachEnd = DateTime.now().microsecondsSinceEpoch;
print('forEach = ${forEachEnd - forEachStart}');
int mapStart = DateTime.now().microsecondsSinceEpoch;
list.map((e) {});
int mapEnd = DateTime.now().microsecondsSinceEpoch;
print('map = ${mapEnd - mapStart}');
第一次打印
I/flutter (17551): for = 11926
I/flutter (17551): forEach = 13340
I/flutter (17551): map = 32
第二次打印
I/flutter (17551): for = 11987
I/flutter (17551): forEach = 13067
I/flutter (17551): map = 29
第三次打印
I/flutter (17551): for = 11707
I/flutter (17551): forEach = 12299
I/flutter (17551): map = 27
注: dart中建议不要在函数字面量中使用' forEach '
更多推荐



所有评论(0)