【问题标题】:save multidimensional arrayList保存多维arrayList
【发布时间】:2014-10-05 16:17:47
【问题描述】:

我有一个多维 ArrayList,由不同长度的多行组成。我想将 ArrayList 保存为具有多列的单个制表符分隔文件,其中每一列对应于 ArrayList 的特定行。我试图想出一个解决方案,但我唯一能想到的就是将每个 ArrayList 行保存在单独的文件中。

ArrayList 被称为“数组”,它包含几行不同长度的行。这是代码:

try {
        PrintWriter output = new PrintWriter(new FileWriter("try"));
        output.print(array.get(0));
    } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

在这种情况下,我可以将 ArrayList 的第一行保存为单个文件。我一直在考虑的另一个解决方案是遍历行,以获得与行号一样多的单独文件。但是,我想获得一个包含多个制表符分隔列的文件。

【问题讨论】:

    标签: java arraylist csv


    【解决方案1】:

    打扰一下,我的旧答案是基于对您的需求的错误解释。 我给你做了一个示例代码:

    package com.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MulitArrayList {
    
        public static void main(String[] args) {
            List<String> innerArrayList1;
            List<String> innerArrayList2;
            List<String> innerArrayList3;
            List<List> outerArrayList;
            
            innerArrayList1 = new ArrayList<String>();
            innerArrayList2 = new ArrayList<String>();
            innerArrayList3 = new ArrayList<String>();
            
            //comic heros
            innerArrayList1.add("superman");
            innerArrayList1.add("batman");
            innerArrayList1.add("catwoman");
            innerArrayList1.add("spiderman");
            //historical persons
            innerArrayList2.add("Stalin");
            innerArrayList2.add("Gandy");
            innerArrayList2.add("Lincoln");
            innerArrayList2.add("Churchill");
            //fast food
            innerArrayList3.add("mc donalds");
            innerArrayList3.add("burger king");
            innerArrayList3.add("subway");
            innerArrayList3.add("KFC");
            
            //fill outerArrayList
            outerArrayList = new ArrayList<List>();
            outerArrayList.add(innerArrayList1);
            outerArrayList.add(innerArrayList2);
            outerArrayList.add(innerArrayList3);
            
            //print
            for(List<String> innerList : outerArrayList) {
                for(String s : innerList) {
                    System.out.print(s + "\t");
                }
                System.out.println("\n");
            }
            
        }
    
    }
    

    结果是:

    如您所见,结果是用制表符打印的,但它们之间的空格是不同的。您可以以相同的方式将其写入文件,但这不是保存数据的最佳方式。希望能帮到你,问候。

    【讨论】:

    • 感谢您的回复。我尝试使用您的代码,但它不起作用。我得到的最终文件只包含 1 行 ArrayList。我想问题是我有一个多维 ArrayList(一个 ArrayList 的 ArrayList)。
    • 不,我的错,我虽然是一维数组列表,但正如你所说,你的意思是一个二维数组列表。
    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2019-01-25
    • 2014-12-21
    • 2023-03-11
    • 2013-09-21
    • 1970-01-01
    • 2012-08-21
    相关资源
    最近更新 更多