我的以下代码运行流畅,并成功打印出[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/