java将字符串Arraylist转换为双Arraylist
我有一个字符串数组列表,我将把它转换成双数组列表。除了使用诸如for、While之类的循环之外,还有其他方法可以转换它吗java将字符串Arraylist转换为双Arraylist,java,string,casting,double,Java,String,Casting,Double,我有一个字符串数组列表,我将把它转换成双数组列表。除了使用诸如for、While之类的循环之外,还有其他方法可以转换它吗 ArrayList<String> S=new ArrayList<String>(); S=FillTheList(); ArrayList<Double> D=new ArrayList<Double>(); arraylists=newarraylist(); S=圆角列表(); ArrayList D=新的Ar
ArrayList<String> S=new ArrayList<String>();
S=FillTheList();
ArrayList<Double> D=new ArrayList<Double>();
arraylists=newarraylist();
S=圆角列表();
ArrayList D=新的ArrayList();
假设你真的希望你的数组列表包含Double
当你完成时,不,没有其他选择,你必须循环,将每个字符串转换成Double
并将Double
添加到新的数组列表中
请注意,在运行时,Java实际上并不知道列表
包含的类型-它不知道它是数组列表
,它只知道它是数组列表
。因此,JVM无法知道需要执行什么操作来转换ArrayList
(它也将其视为ArrayList
)的内容并将其添加到JDK中的ArrayList
,直到版本7,JDK 8将不支持函数编程(有关语法,请参见下面@JBNizet的注释)
但是,您可以使用来实现此目的:
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);
最终函数fn=新函数()
{
@凌驾
公共双应用(最终字符串输入)
{
返回Double.parseDouble(输入);
}
};
//使用原始的ArrayList
最终列表D=Lists.transform(S,fn);
请注意,虽然此代码中没有循环,但在内部代码仍将使用循环
但是,更重要的是,您不能将字符串
转换为双精度
,因为这是两个不同的类。您必须通过如上所示的解析方法。如果您使用番石榴,是的。JDK本身没有这种机制,至少不到版本7。版本8将支持它,而旁注:如果重新分配一个新列表(由FilltList()
返回,该列表应命名为FilltList()
),那么将空数组列表分配给s
(应命名为FilltList()
)有什么意义要想S
紧跟其后?@salmanashkarara查看我的答案只是为了记录,在Java 8中,您可以执行List d=S.stream().map(Double::valueOf).collect(Collectors.toList());