繁体   English   中英

java-Cast String Arraylist加倍ArrayList

[英]java-Cast String Arraylist to double ArrayList

我有一个String arraylist ,我将把它转换为双arraylist 除了使用像for之类的循环之外,还有什么方法可以转换它吗?

ArrayList<String>  S=new ArrayList<String>();

S=FillTheList();

ArrayList<Double>  D=new ArrayList<Double>();

在JDK本身,最高版本7,没有。 但JDK 8将具有函数式编程支持(请参阅下面@JBNizet的注释以获取语法)。

您可以使用Guava实现此目的:

final Function<String, Double> fn = new Function<String, Double>()
{
    @Override
    public Double apply(final String input)
    {
        return Double.parseDouble(input);
    }
};

// with S the original ArrayList<String>

final List<Double> D = Lists.transform(S, fn);

请注意,虽然此代码中没有循环,但代码内部仍会使用循环。

但更重要的是,您不能将String转换为Double ,因为它们是两个不同的类。 您必须通过如上所示的解析方法。

假设你真的想你ArrayList包含Double那时你就大功告成了,没有,没有选择,你会通过有循环,每个转换StringDouble并加入DoubleArrayList

请注意,在运行时,Java实际上并不知道List包含的类型 - 它不知道它是一个ArrayList<Double> ,它只知道它是一个ArrayList 因此,JVM无法知道在转换ArrayList<String> (它也称为ArrayList )的内容时需要执行哪些操作,并将它们添加到ArrayList<Double>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM