java - 如何从混合整数和浮点列表中一行初始化 ArrayList<Double>?

标签 java

我有以下代码运行顺利并成功打印出[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/

相关文章:

java - Python 的 subprocess.Popen() 的 Java 等价物是什么?

java - 使用 Proxy Tickets 的 Spring 和 CAS

java - 类类型作为Java中的参数

java - twitter4j 使用通用参数名称

java - 正确设置工作路径

java - 如何从java中的字符串创建键/值映射(更复杂)

java - 如何将用户当前用户详细信息插入 Firebase 中的另一个节点?

java - Cloud Config Server 不会解密值

java - 如何设置ImageResource列表<Item>

参数解析器后的 Java 手动验证