如何转换字符串数组,如:
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)
答案 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#ArrayList
是java.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将包含原始数组中的所有元素。