[英]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.