【发布时间】:2023-03-13 19:46:01
【问题描述】:
以下代码使用Java8运行良好
List<String> strings = IntStream
.range(0,scanner.nextInt())
.mapToObj(i -> scanner.next())
.collect(Collectors.toList());
这是做什么的:
for(i=0; i<scanner.nextInt(); i++){
list.add(sc.next());
}
构建输入整数列表的合适(类似)方法是什么?也欢迎其他方式!
【问题讨论】:
-
程序的可读性,而不是性能。 I/O 开销可能是此处理所用时间的 100 倍。
-
@chrylis,我没有发现这段代码难以辨认。您愿意稍微解释一下或指出关于 I/O 开销的正确方向吗?另请注意,我正在尝试熟悉 Java8。
-
答案应该很明显。如果
next()返回一个字符串,则调用一个返回整数的方法,即nextInt()。或添加.map(Integer::valueOf)。 -
我没有说它难以辨认。我说过,一般来说,追求性能不是你应该优先考虑的问题。
-
哦,我在收到 TLE 的论坛中遇到了这种编码形式。再加上这个表格对我来说是新的,所以我想我会做一些实验并同时学习。
for(i=0; i<scanner.nextInt(); i++){ list.add(sc.next()); }这是首选方式吗?
标签: java performance lambda