java中从字符串到arrayList的转换问题
我有个问题!我正在尝试将字符串转换为ArrayList,但它不起作用, 它在控制台中表示类型不匹配:无法从list转换为ArrayList 我的小程序:java中从字符串到arrayList的转换问题,java,Java,我有个问题!我正在尝试将字符串转换为ArrayList,但它不起作用, 它在控制台中表示类型不匹配:无法从list转换为ArrayList 我的小程序: package nfa032.application; import java.util.*; import java.util.ArrayList; import java.util.Scanner; import java.io.*; public class ArrayListUtils { public static void Aff
package nfa032.application;
import java.util.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.*;
public class ArrayListUtils {
public static void AfficherArrayListString(ArrayList<String>a)
{
for(int i=1; i<=a.size(); i++)
{
System.out.println(a.get(i));
}
}
public static ArrayList<String> lireArrayListString(int n) throws IOException
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(isr);
String s;
String [] str;
ArrayList liste=new ArrayList<String>();
for(int i=1; i<=n; i++)
{
System.out.println("Entrer une chaîne.");
s=in.readLine();
str=s.split("\\s+");
liste=Arrays.asList(str);
}
return liste;
}
包nfa032.0应用程序;
导入java.util.*;
导入java.util.ArrayList;
导入java.util.Scanner;
导入java.io.*;
公共类ArrayStutils{
公共静态void AfficherArrayListString(ArrayLista)
{
对于(inti=1;i我想问题是这行liste=Arrays.asList(str);
这是因为您正试图将接口列表
分配给该接口的实现,该接口是ArrayList
要解决这个问题,您可以执行List liste=new ArrayList();
您的代码有几个问题
- 您的
liste
变量未指定菱形运算符ArrayList
应为ArrayList
,以指示它将包含字符串元素(有关菱形运算符的详细信息)
Arrays.asList()
不返回ArrayList
,但它返回列表(ArrayList的超级类型)。如果要使用Arrays.asList
,需要将liste
的类型更改为List
代码变成这样
public static void AfficherArrayListString(final ArrayList<String> a) {
for (int i = 1; i <= a.size(); i++) {
System.out.println(a.get(i));
}
}
public static List<String> lireArrayListString(final int n) throws IOException {
final InputStreamReader isr = new InputStreamReader(System.in);
final BufferedReader in = new BufferedReader(isr);
String s;
String[] str;
List<String> liste = new ArrayList<>();
for (int i = 1; i <= n; i++) {
System.out.println("Entrer une chaîne.");
s = in.readLine();
str = s.split("\\s+");
liste = Arrays.asList(str);
}
return liste;
}
public静态void afficherArrayList字符串(最终ArrayList a){
对于(int i=1;i公共静态ArrayList lireArrayListString(int n)抛出IOException
{
InputStreamReader isr=新的InputStreamReader(System.in);
BufferedReader in=新的BufferedReader(isr);
字符串s;
字符串[]str;
ArrayList liste=新的ArrayList();
对于(inti=1;ihere),我将ArrayList放在liste=之后、Arrays.asList(str)之前;但是当我在线程“main”java.lang.ClassCastException中输入区块链异常时会出现异常:class java.util.Arrays$ArrayList不能转换为class java.util.ArrayList(java.util.Arrays$ArrayList和java.util.ArrayList在加载程序“引导”的模块java.base中)位于nfa032.application.ArrayListIls.LiRearyListString(arrayListIls.java:26)的nfa032.application.Main.Main(Main.java:27)Arrays.asList()不返回ArrayList,但返回列表(ArrayList的超类型)。如果要使用Arrays.asList,则需要将列表的类型更改为List
public static ArrayList<String> lireArrayListString(int n) throws IOException
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(isr);
String s;
String [] str;
ArrayList<String> liste=new ArrayList<String>();
for(int i=1; i<=n; i++)
{
System.out.println("Entrer une chaîne.");
s=in.readLine();
str=s.split("\\s+");
liste=(ArrayList<String>) Arrays.asList(str);
}
return liste;
}