Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中从字符串到arrayList的转换问题_Java - Fatal编程技术网

java中从字符串到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

我有个问题!我正在尝试将字符串转换为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 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;
}