2012-10-14 73 views
1

可能重複:
Assigning an array to an ArrayList in Java轉換字符串數組ArrayList的<String>

我怎麼可以轉換像字符串數組:

String logsSplitFromUrdu[] = fromTheRecentLogFile.split("غزل"); 

ArrayList<String>

編輯:

我在做的時候,我得到一個錯誤,如:

ArrayList<String> time = (ArrayList<String>)Arrays.asList(logsSplitFromUrdu); 

編輯:

例外,我得到時做了以上:

java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList 
    at Tester.main(Tester.java:26) 
+1

[你有什麼嘗試?](http://www.whathaveyoutried.com/) –

+2

你是否瀏覽了以下文檔: - [Array#asList](http://docs.oracle.com/javase/ 7/docs/api/java/util/Arrays.html#asList%28T ...%29) –

+1

什麼錯誤?或者是猜測樂趣的一部分? –

回答

2

使用Arrays類中的方法Arrays.asList()。這將(在這種情況下String)返回正確的泛型類型的List

List<String> list = Arrays.asList(logsSplitFromUrdu); 

如果你絕對需要一個ArrayList<String>List<String>不會做,然後一前一後寫一個附加行:

ArrayList<String> arraylist = new ArrayList<String>(list); 
0

Arrays.asList(logsSplitFromUrdu); 

返回類型List<String>,不能轉換爲ArrayList<String>。相反,您可以使用:

List<String> myList = Arrays.asList(logsSplitFromUrdu); 

它返回一個不可修改的列表。爲了得到一個可修改列表,你可以使用:

ArrayList<String> modifyiableList = new ArrayList<String>(myList); 
modifyiableList.add("..."); 
0

u必須使用asList java.util.Arrays中的方法,請參閱該文檔here

2

看看Arrays#asList。此方法返回fixed size列表。

所以,如果你是ok with fixed size list,那麼你可以使用這個: -

List<String> fixedList = Arrays.asList(logsSplitFromUrdu); 

但是,如果你want to modify新創建的List,你需要這樣的創建: -

ArrayList<String> modifiableList = 
      new ArrayList<String>(Arrays.asList(logsSplitFromUrdu)) 

但是你不應該這樣做: -

ArrayList<String> modifiableList = 
        (ArrayList<String>)Arrays.asList(logsSplitFromUrdu)) 

它會給你ClassCastException,因爲,單從Arrays.asList返回類型爲: - java.util.Arrays.ArrayList,它不能被轉換爲: - java.util.ArrayList

更新: - java.util.Arrays#ArrayList是靜態在Arrays類中定義的類。

+0

'java.util.List.ArrayList'我懷疑它是否存在! –

+0

@ Y.E.P對不起。 java.util.Arrays.ArrayList。將修改它.. –

+0

@ Y.E.P看到這個優秀帖子: - http://stackoverflow.com/questions/4658867/why-does-arrays-aslist-return-its-own-arraylist-implementation關於這個更多的信息 –

0

使用Arrays.asList()方法來轉換arrayArrayList

String logsSplitFromUrdu[] = fromTheRecentLogFile.split("غزل"); 

ArrayList<String> arList = new ArrayList<String>(Array.asList(logsSplitFromUrdu)); 
0

您可以簡單地用一個for循環對所有從數組中的元素複製到一個新的ArrayList像這樣:

ArrayList<String> logsList = new ArrayList<String>(); 
for(int i = 0; i < logsSplitFromUrdu.length; i++) 
{ 
    logsList.add(logsSplitFromUrdu[i]); 
} 

並且在此之後logsList將包含原始數組中的所有元素。

相關問題