访问 ArrayList 的 ArrayList 中的元素
Accessing Elements in an ArrayList of ArrayLists
我有一个 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;
}
}
我正在读取 .csv 文件,我正在尝试重新排列 .csv 文件中的项目,以便创建一个我可以更有效地用于项目的 .csv 文件。但是,当我 运行 这段代码时,我在“x = B.get(0);”处收到“错误:不兼容的类型:Object 无法转换为 ArrayList”。我也试过 x.get(0).remove(0).
我正在尝试删除 ArrayList B 中第一个 ArrayList 的第一个元素,所以我做错了什么?我试图删除它的原因是指定的元素是 .csv 中的空白 space (在创建原始文件时有意这样做,因为它是 headers 之间的 space在矩阵中)。
请帮忙!
您定义的 ArrayList B
没有类型,但是 ArrayList x
有 String
类型。您需要转换类型,或者您需要遵循以下更好的方法:
指定 ArrayList B
的类型:
ArrayList<ArrayList<String>> B = new ArrayList<>();
要从 ArrayList
中删除任何元素,请跳过创建另一个对象并指向 B
中的元素,直接从 B
中删除:
B.get(0).remove(0);
我有一个 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;
}
}
我正在读取 .csv 文件,我正在尝试重新排列 .csv 文件中的项目,以便创建一个我可以更有效地用于项目的 .csv 文件。但是,当我 运行 这段代码时,我在“x = B.get(0);”处收到“错误:不兼容的类型:Object 无法转换为 ArrayList”。我也试过 x.get(0).remove(0).
我正在尝试删除 ArrayList B 中第一个 ArrayList 的第一个元素,所以我做错了什么?我试图删除它的原因是指定的元素是 .csv 中的空白 space (在创建原始文件时有意这样做,因为它是 headers 之间的 space在矩阵中)。
请帮忙!
您定义的 ArrayList B
没有类型,但是 ArrayList x
有 String
类型。您需要转换类型,或者您需要遵循以下更好的方法:
指定 ArrayList B
的类型:
ArrayList<ArrayList<String>> B = new ArrayList<>();
要从 ArrayList
中删除任何元素,请跳过创建另一个对象并指向 B
中的元素,直接从 B
中删除:
B.get(0).remove(0);