将字符串数组转换为ArrayList <string> </string>

时间:2012-10-14 14:50:42

标签: java arrays string arraylist classcastexception

  

可能重复:
  Assigning an array to an ArrayList in Java

如何转换字符串数组,如:

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)

6 个答案:

答案 0 :(得分:2)

使用Arrays课程中的Arrays.asList()方法。它将返回List正确的泛型类型(在这种情况下为String):

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

如果你绝对需要一个ArrayList<String>而一个List<String>不能做,那么在前一个之后再写一行:

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

答案 1 :(得分: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且无法转换为: - { {1}}

更新: - java.util.Arrays#ArrayListjava.util.ArrayList类中定义的静态类。

答案 2 :(得分:0)

的返回类型
Arrays.asList(logsSplitFromUrdu);

List<String>,无法转换为ArrayList<String>。相反,您可以使用:

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

返回不可修改的列表。要获得可修改的列表,您可以使用:

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

答案 3 :(得分:0)

你必须使用java.util.Arrays的asList方法,参考文档here

答案 4 :(得分:0)

使用Arrays.asList()方法将array转换为ArrayList

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

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

答案 5 :(得分:0)

你可以简单地使用for循环将数组中的所有元素复制到一个新的ArrayList中,如下所示:

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

此后,logsList将包含原始数组中的所有元素。