Java 将字符串数组转换为ArrayList

Java 将字符串数组转换为ArrayList,java,arrays,string,arraylist,classcastexception,Java,Arrays,String,Arraylist,Classcastexception,可能重复: 如何转换字符串数组,如: String logsSplitFromUrdu[] = fromTheRecentLogFile.split("غزل"); 变成一个数组列表 编辑: 当我遇到一个错误时,我正在做这样的事情: ArrayList<String> time = (ArrayList<String>)Arrays.asList(logsSplitFromUrdu); 使用Arrays类中的方法。在这种情况下,它将返回正确泛型类型字符串的列表: L

可能重复:

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

String logsSplitFromUrdu[] = fromTheRecentLogFile.split("غزل");
变成一个数组列表

编辑:

当我遇到一个错误时,我正在做这样的事情:

ArrayList<String> time = (ArrayList<String>)Arrays.asList(logsSplitFromUrdu);
使用Arrays类中的方法。在这种情况下,它将返回正确泛型类型字符串的列表:

List<String> list = Arrays.asList(logsSplitFromUrdu);
如果您确实需要一个ArrayList,但列表不行,请在前一行之后再写一行:

ArrayList<String> arraylist = new ArrayList<String>(list);
使用Arrays类中的方法。在这种情况下,它将返回正确泛型类型字符串的列表:

List<String> list = Arrays.asList(logsSplitFromUrdu);
如果您确实需要一个ArrayList,但列表不行,请在前一行之后再写一行:

ArrayList<String> arraylist = new ArrayList<String>(list);
返回类型为

Arrays.asList(logsSplitFromUrdu);
是列表,无法强制转换为ArrayList。相反,您可以使用:

List<String> myList = Arrays.asList(logsSplitFromUrdu);
它返回一个不可修改的列表。要获取可修改列表,您可以使用:

ArrayList<String> modifyiableList = new ArrayList<String>(myList); 
modifyiableList.add("...");
返回类型为

Arrays.asList(logsSplitFromUrdu);
是列表,无法强制转换为ArrayList。相反,您可以使用:

List<String> myList = Arrays.asList(logsSplitFromUrdu);
它返回一个不可修改的列表。要获取可修改列表,您可以使用:

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

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

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

看一看。此方法返回一个固定大小的列表

因此,如果您同意固定大小列表,那么您可以使用:-

List<String> fixedList = Arrays.asList(logsSplitFromUrdu);
但你不应该这样做:-

ArrayList<String> modifiableList = 
             new ArrayList<String>(Arrays.asList(logsSplitFromUrdu))
它将为您提供ClassCastException,因为从Arrays.asList返回的列表类型为:-java.util.Arrays.ArrayList,并且不能强制转换为:-java.util.ArrayList

更新:-是在Arrays类中定义的静态类

看一看。此方法返回一个固定大小的列表

因此,如果您同意固定大小列表,那么您可以使用:-

List<String> fixedList = Arrays.asList(logsSplitFromUrdu);
但你不应该这样做:-

ArrayList<String> modifiableList = 
             new ArrayList<String>(Arrays.asList(logsSplitFromUrdu))
它将为您提供ClassCastException,因为从Arrays.asList返回的列表类型为:-java.util.Arrays.ArrayList,并且不能强制转换为:-java.util.ArrayList

更新:-是在Arrays类中定义的静态类

使用Arrays.asList方法将数组转换为ArrayList

使用Arrays.asList方法将数组转换为ArrayList


您只需使用for循环将数组中的所有元素复制到新的ArrayList中,如下所示:

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

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

您只需使用for循环将数组中的所有元素复制到新的ArrayList中,如下所示:

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

在此之后,日志列表将包含原始数组中的所有元素。

您是否查阅了:-什么错误?或者猜测是乐趣的一部分?@AndrewThompson错误:它不能被铸造请将新信息复制/粘贴到问题中作为编辑,并在其上使用代码格式。您是否阅读了:-什么错误的文档?或者猜测是乐趣的一部分?@AndrewThompson错误:它不能被铸造请将新信息复制/粘贴到问题中作为编辑,并在其上使用代码格式。java.util.List.ArrayList我怀疑它是否存在@Y.E.P.很抱歉。java.util.Arrays.ArrayList。将对其进行修改。@Y.E.P请参阅此优秀帖子:-有关此java.util.List.ArrayList的更多信息,我怀疑它是否存在@Y.E.P.很抱歉。java.util.Arrays.ArrayList。将对其进行修改。@Y.E.P查看此优秀帖子:-了解更多信息