如何将存储在字符串数组中的特定字符串打印到字符串数组的ArrayList中? 因此,根据问题,我有以下Java代码: 公共类示例{ 静态ArrayList测试=新建ArrayList(); 私有字符串[]a={“this”,“is”,“a test”}; 私有字符串[]b={“Look”,“a three-heading”,“monkey”}; 公共空间填充测试(){ 测试。添加(a); 测试。添加(b); //到目前为止还不错,我检查了这个方法 //使用System.out.print,它可以正常工作 } //在后面的代码中,我有一个方法可以尝试 //进行arrayList测试并将其复制到 //在my vision temp中名为temp.的字符串[] //应该由用户随机访问 //方法本身和打印出来的内容 //应从测试中删除“从温度”- //这就是我使用ArrayList的原因 公共物品{ //一些东西 //此处发生运行时错误: 字符串[]temp=test.toArray(新字符串[test.size()]); //其他从未进入运行时的东西 } }
问题是,虽然编译器对此没有任何异议,但在运行时我会遇到以下错误: 线程“main”java.lang.ArrayStoreException:arraycopy:元素类型不匹配:无法将java.lang.Object[]的一个元素强制转换为目标数组的类型java.lang.String如何将存储在字符串数组中的特定字符串打印到字符串数组的ArrayList中? 因此,根据问题,我有以下Java代码: 公共类示例{ 静态ArrayList测试=新建ArrayList(); 私有字符串[]a={“this”,“is”,“a test”}; 私有字符串[]b={“Look”,“a three-heading”,“monkey”}; 公共空间填充测试(){ 测试。添加(a); 测试。添加(b); //到目前为止还不错,我检查了这个方法 //使用System.out.print,它可以正常工作 } //在后面的代码中,我有一个方法可以尝试 //进行arrayList测试并将其复制到 //在my vision temp中名为temp.的字符串[] //应该由用户随机访问 //方法本身和打印出来的内容 //应从测试中删除“从温度”- //这就是我使用ArrayList的原因 公共物品{ //一些东西 //此处发生运行时错误: 字符串[]temp=test.toArray(新字符串[test.size()]); //其他从未进入运行时的东西 } },java,arrays,arraylist,toarray,arraystoreexception,Java,Arrays,Arraylist,Toarray,Arraystoreexception,问题是,虽然编译器对此没有任何异议,但在运行时我会遇到以下错误: 线程“main”java.lang.ArrayStoreException:arraycopy:元素类型不匹配:无法将java.lang.Object[]的一个元素强制转换为目标数组的类型java.lang.String 我无法理解背后的原因-在我看来,我要求它用字符串填充字符串数组,那么为什么会出现错误?您正在尝试将元素为字符串数组的列表转换为元素为字符串的数组。这不起作用,因为字符串的数组不是字符串 相反,您可以将数组的列表转
我无法理解背后的原因-在我看来,我要求它用字符串填充字符串数组,那么为什么会出现错误?您正在尝试将元素为
字符串数组的列表
转换为元素为字符串
的数组。这不起作用,因为字符串
的数组不是字符串
相反,您可以将数组的列表
转换为字符串的二维数组
s:
String[][] temp = test.toArray(new String[test.size()][]);
如果要将列表
的字符串数组的所有元素放在字符串
的单个数组中,则必须进行一些处理。使用Stream
s,可以通过以下方式完成:
String[] temp = test.stream().flatMap(Arrays::stream).toArray(String[]::new);
您正在尝试将元素为
String
数组的列表
转换为元素为String
s的数组。这不起作用,因为字符串
的数组不是字符串
相反,您可以将数组的列表
转换为字符串的二维数组s:
String[][] temp = test.toArray(new String[test.size()][]);
如果要将列表
的字符串数组的所有元素放在字符串
的单个数组中,则必须进行一些处理。使用Stream
s,可以通过以下方式完成:
String[] temp = test.stream().flatMap(Arrays::stream).toArray(String[]::new);
您可以使用方法展平此字符串数组列表,并在单个字符串数组上获取流。然后您可以得到一个包含此流元素的数组:
List test=Arrays.asList(
新字符串[]{“this”,“is,,“a test”},
新字符串[]{“Look”,“a three-heading”,“monkey”});
字符串[]临时=测试
//回流
.stream()
//回流
.flatMap(arr->Arrays.stream(arr))
//返回指定大小的数组
.toArray(大小->新字符串[大小]);
System.out.println(Arrays.toString(temp));
//[这是,一个测试,看,一只三头猴子]
另请参见:您可以使用方法展平此字符串数组列表,并在单个字符串数组上获取流。然后您可以得到一个包含此流元素的数组:
List test=Arrays.asList(
新字符串[]{“this”,“is,,“a test”},
新字符串[]{“Look”,“a three-heading”,“monkey”});
字符串[]临时=测试
//回流
.stream()
//回流
.flatMap(arr->Arrays.stream(arr))
//返回指定大小的数组
.toArray(大小->新字符串[大小]);
System.out.println(Arrays.toString(temp));
//[这是,一个测试,看,一只三头猴子]
另见: