java - 将 long 列表转换为 int java 8 列表

标签 java integer java-stream

我有一个方法,它接受一个整数列表作为参数。 我目前有一个长列表,想将其转换为整数列表,所以我写道:

  List<Integer> student =
  studentLong.stream()
  .map(Integer::valueOf)
  .collect(Collectors.toList());

但是我收到一个错误:

method "valueOf" can not be resolved. 

是否真的可以将长整数列表转换为整数列表?

最佳答案

您应该使用带有 Long::intValuemapToInt 来提取 int 值:

List<Integer> student = studentLong.stream()
           .mapToInt(Long::intValue)
           .boxed()
           .collec‌t(Collectors.toList(‌​))

您得到 method "valueOf"cannot be resolved. 的原因是因为没有 Integer::valueOf 的签名它接受 Long 作为参数。

编辑
根据 Holger 在下面的评论,我们还可以:

List<Integer> student = studentLong.stream()
           .map(Long::intValue)
           .collec‌t(Collectors.toList(‌​))

关于java - 将 long 列表转换为 int java 8 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47543573/

相关文章:

Java:增加页面加载时间脚本

java - 包装到另一个类中的不可变整数(按值调用)

java - 为什么 HashSet 是排序的?

python - 将正数/负数四舍五入到最接近的 "whole"数字

java - 像在 SQL 中使用 Java lambda 一样对对象进行分组和求和?

Java 8 流 max() 函数参数类型 Comparator 与 Comparable

java - 收集后调用Java 8流中对象的方法

java - 从命令行运行时混合 java 和 kotlin 代码的 ClassNotFoundException

java - 重新审视 Jon Skeet 在他的文章中发布的 Java 中的按值传递语义

java - 防止未经授权的成员加入 Hazelcast 集群