我有以下代码运行顺利并成功打印出[1,2,3,4,5]。
import static java.util.Arrays.asList;
public class JavaApplication2 {
public static ArrayList<Integer> Foo()
{
return new ArrayList<>(asList(1,2,3,4,5));
}
public static void main(String[] args) {
System.out.println(Foo());
}
}
但是,如果我更改返回类型
ArrayList<Double>,
然后我遇到“不兼容类型”编译错误。
问题:如何通过仅给出以下资源来编写函数体(如果在一行中完成那就太好了)?
返回类型:
ArrayList<Double>
1.0、2、3.1、4、5
注意:我正在编写一个程序来从给定的列表文本生成代码,我无法标记逗号分隔值,该值可能是 1, 2, 3, 4, 5或 1.0、2.0、3.0、4.0、5.0 或它们的混合。
public class JavaApplication2 {
public static ArrayList<Double> Foo()
{
//HOW TO WRITE THIS FUNCTION BODY?
1.0, 2, 3.1, 4, 5
}
public static void main(String[] args) {
System.out.println(Foo());
}
}
我期待程序打印:
[1.0, 2.0, 3.1, 4.0, 5.0]
最佳答案
您可以使用DoubleStream
来做到这一点:
public static ArrayList<Double> Foo() {
return DoubleStream.of(1.0, 2, 3.1, 4, 5)
.boxed()
.collect(Collectors.toCollection(ArrayList::new));
}
关于java - 如何从混合整数和浮点列表中一行初始化 ArrayList<Double>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48332271/