簡體   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