![](/img/trans.png)
[英]Sorting ArrayList of ArrayList of double and string by the double in Java
[英]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
那时你就大功告成了,没有,没有选择,你会通过有循环,每个转换String
到Double
并加入Double
新ArrayList
。
请注意,在运行时,Java实际上并不知道List
包含的类型 - 它不知道它是一个ArrayList<Double>
,它只知道它是一个ArrayList
。 因此,JVM无法知道在转换ArrayList<String>
(它也称为ArrayList
)的内容时需要执行哪些操作,并将它们添加到ArrayList<Double>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.