Java 访问ArrayList中的ArrayList中的元素

Java 访问ArrayList中的ArrayList中的元素,java,arraylist,printwriter,Java,Arraylist,Printwriter,我有一个ArrayList的ArrayList,我试图访问其中的元素,通常添加、删除、替换和获取项目 我的代码如下 import java.io.*; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class MarvelNetworkRearrange { public static v

我有一个ArrayList的ArrayList,我试图访问其中的元素,通常添加、删除、替换和获取项目

我的代码如下

import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
 

public class MarvelNetworkRearrange {
    public static void main(String[] args) {
        
        BufferedReader csvReader = null;
        
        try {
            String newLine;
         ArrayList B = new ArrayList<ArrayList>();
            csvReader = new BufferedReader(new FileReader("MARVEL P2P.csv"));
         Integer i = 0;
            

            while ((newLine = csvReader.readLine()) != null) 
         {
            B.add(A(newLine));
            }
         File f = new File("MarvelRearranged.csv");
         PrintWriter printWriter = new PrintWriter(f);
         
         ArrayList<String> x = new ArrayList<String>();
         x = B.get(0);
         x.remove(0);
         
         System.out.println(x);
         
         
        } 
      catch (IOException e) 
      {
            e.printStackTrace();
        } 
      finally 
      {
            try 
         {
                if (csvReader != null) csvReader.close();
            } 
         catch (IOException newException) 
         {
                newException.printStackTrace();
            }
        }
    }
    public static ArrayList<String> A(String fromCSV) {
        ArrayList<String> csvResult = new ArrayList<String>();
        
        if (fromCSV != null) 
      {
            String[] splitData = fromCSV.split("\\s*,\\s*");
            for (int i = 0; i < splitData.length; i++) 
         {
                if (!(splitData[i] == null) || !(splitData[i].length() == 0)) 
            {
                    csvResult.add(splitData[i].trim());
                }
            }
        }
        return csvResult;
    }
}
import java.io.*;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.ArrayList;
公共类网络重新排列{
公共静态void main(字符串[]args){
BufferedReader csvReader=null;
试一试{
字符串换行符;
ArrayList B=新的ArrayList();
csvReader=new BufferedReader(新文件阅读器(“MARVEL P2P.csv”);
整数i=0;
而((newLine=csvReader.readLine())!=null)
{
B.添加(A(换行符));
}
文件f=新文件(“marvelrequenced.csv”);
PrintWriter PrintWriter=新的PrintWriter(f);
ArrayList x=新的ArrayList();
x=B.get(0);
x、 移除(0);
系统输出println(x);
} 
捕获(IOE异常)
{
e、 printStackTrace();
} 
最后
{
尝试
{
如果(csvReader!=null)csvReader.close();
} 
捕获(IOException newException)
{
newException.printStackTrace();
}
}
}
公共静态数组列表A(CSV中的字符串){
ArrayList csvResult=新的ArrayList();
if(fromCSV!=null)
{
String[]splitData=fromCSV.split(“\\s*,\\s*”);
对于(int i=0;i
我正在读取一个.csv文件,我正在尝试重新排列.csv文件中的项目,以便创建一个可以更有效地用于项目的.csv文件。然而,当我运行这段代码时,我在“x=B.get(0);”处得到“错误:不兼容的类型:对象无法转换为ArrayList”。我还尝试了x.get(0)。删除(0)

我试图删除ArrayList B中第一个ArrayList的第一个元素,那么我做错了什么?我试图删除它的原因是指定的元素是.csv中的一个空格(在创建原始元素时故意这样做,因为它是矩阵中标题之间的空格)


请帮忙

您已经定义了不带类型的
ArrayList B
,但是
ArrayList x
具有
String
类型。您需要强制转换类型,或者需要遵循以下更好的方法:

指定
阵列列表B的类型

ArrayList<ArrayList<String>> B = new ArrayList<>();

我想也许您应该包括一个.csv文件的小样本新建ArrayList()进行编码>操作
B.get(0).remove(0);