仅将两个ArrayList组合为一个数组



所以我要做的是将两个数组列表合并为一个,并根据合并后的数组/列表编写.csv文件。

比方说,我有两个这样的ArrayList:

public static ArrayList<String> listingNameList;
public static ArrayList<String> listingPriceList;

我正在尝试将listingNameListlistingPriceList组合为neededInfo。然后:

String directory = System.getProperty("user.dir");
File file = new File(directory + "/src/sportsCardsTracker/CardPrices.csv");
FileWriter fw = new FileWriter(file, false); //true to not over ride            for(String[] s : neededInfo){
fw.write(s[0] + "," + s[1] +'n');
}

目前我不知道如何组合listingNameListlistingPriceList。或者,至少我如何将listingNameListlistingPriceList写入.csv文件而不必将两者合并?非常感谢任何信息和建议!

编辑:我试过这样的东西,但不起作用。for循环运行50次,因为listingNameList中有50个项目,listingPriceList中又有50个。

for(int i = 0; i < 50; i++) {
String[][] neededInfo = new String[2][i];
neededInfo[0][i] = listingName_extract[i];
neededInfo[1][i] = listingPrice_extract[i];
}
System.out.println(neededInfo);
for(String[][] s : neededInfo){
fw.write(s[0] + "," + s[1] +'n');
}
fw.close();

拥有String[][]怎么样?

  1. 一对[[name,price]]的列表
private static String[][] parsingString(String listingName_temp, String listingPrice_temp) {
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingPrice_temp.split("\n");
String[][] nameAndPrice = new String[listingName_extract.length][2];
for (int i = 0; i < listingName_extract.length; i++) {
nameAndPrice[i][0] = listingName_extract[i];
nameAndPrice[i][1] = listingPrice_extract[i];
}
return nameAndPrice;
}

示例

parsingString("name1nname2nname3", "1n2n3")
> [[name1, 1], [name2, 2], [name3, 3]]
  1. 一对列表[[name],[price]]
private static String[][] parsingString(String listingName_temp, String listingPrice_temp) {
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingPrice_temp.split("\n");
String[][] nameAndPrice = new String[2][listingName_extract.length];
for (int i = 0; i < listingName_extract.length; i++) {
nameAndPrice[0][i] = listingName_extract[i];
nameAndPrice[1][i] = listingPrice_extract[i];
}
return nameAndPrice;
}

示例

parsingString("name1nname2nname3", "1n2n3")
> [[name1, name2, name3], [1, 2, 3]]

编辑要写入文件,可以使用"1。配对列表[[name,price]]">和以下步骤

  1. 打开文件
  2. 将数据解析为String[][]
  3. 迭代数据并将其写入文件
  4. 关闭文件
private static String[][] parsingString(String listingName_temp, String listingPrice_temp) {
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingPrice_temp.split("\n");
String[][] nameAndPrice = new String[listingName_extract.length][2];
for (int i = 0; i < listingName_extract.length; i++) {
nameAndPrice[i][0] = listingName_extract[i];
nameAndPrice[i][1] = listingPrice_extract[i];
}
return nameAndPrice;
}
public static void main(String[] args) throws IOException {
File file = new File("CardPrices.csv");
FileWriter fw = new FileWriter(file, false); //true to not over ride
String[][] players = parsingString("name1nname2nname3", "1n2n3");
for (String[] s : players) {
fw.write(s[0] + "," + s[1] + 'n');
}
fw.close();
}

进入文件,你会有

name1,1
name2,2
name3,3

我假设您不想创建一个新数组,然后手动添加两个数组的所有值,然后返回,如果是这样的话,为什么不试试这个呢

private static String[] parsingString(String listingName_temp, String listingPrice_temp) {
String[] returnString_1 = null;
String[] returnString_2 = null;
String[] listingName_extract = listingName_temp.split("\n");
String[] listingPrice_extract = listingName_temp.split("\n");
for(int i = 0; i < listingName_extract.length; i++) {
returnString_1[i] = listingName_extract[i];
returnString_2[i] = listingPrice_extract[i];
}
return Stream.concat(Arrays.stream(returnString_1), Arrays.stream(returnString_2)).toArray();
}

过了一段时间,我决定将两者结合起来不是一个好选择。相反,我这样做:

for (int i = 0; i < listingNameList.size(); i++) {
fw.write(String.format("%s, %sn", listingNameList.get(i), listingPriceList.get(i)));
}

最新更新