簡體   English   中英

使用什么結構從CSV文件讀取數據?

[英]What structure to use to read data from CSV file?

創建數組存儲CSV文件信息時,我仍然遇到問題。 這是我的csv-文件的示例。

Time;Data0;Data1;Data2;
27.08.2013 00:00:00;nan;nan;nan;
27.08.2013 00:10:00;0;1;2;

如您所見,它們是3種類型。 -String:列名(例如Time ),或者nan -NotANumber-。 -Double:用於Data0Data1Data2的值。 -Timestamp:用於Time值。

列的名稱始終位於文件的第一行。 我可以有很多行和列。

所以現在我的問題是:獲取這些信息並將其以類似數組的形式存儲的最簡單方法是什么? 我需要輕松訪問這些信息,例如,通過搜索名為Data0的字段,我希望能夠訪問nan0

我做了什么:我試圖將其存儲到地圖中,但這不是我想要的(或者顯然我沒有正確使用它)。 此外,我僅限於兩個要素,而我只有三個要素。 我也嘗試在數組中執行此操作,但是由於數組只能在Java中的一種類型后定義,因此我嘗試在一個類之后進行創建:

public class StorageArray {
    String nameColumn;
    Double contentLine;
    Timestamp time;
}

但是后來我不知道如何在類中的不同變量中存儲不同類型。

我是Java初學者,所以也許有一種簡單的方法可以執行我想要的操作? 如果您希望我提供更多代碼,可以,但是我想使問題盡可能簡單。

一個朋友告訴我要使用自省對象關系映射 (ORM)。 但是對我來說似乎很難。

我認為您不需要Double contentLine

使用LinkedHashMap<String /*nameColumn*/,Timestamp /*time*/ >

您的地圖中存儲的索引就是您的行。

Linkedlist<SomeYourClass> ,使用Linkedlist<SomeYourClass> ,其中SomeYourClass代表您的行(我認為這很容易處理):

public class Row
{
List<String> nameColumnList;
//Double contentLine; /* you don't need it*/
Timestamp time;
// ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM