[英]For Comparing the rows in CSV file. Which is the best Data Structure to use
[英]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:用於Data0
, Data1
, Data2
的值。 -Timestamp:用於Time
值。
列的名稱始終位於文件的第一行。 我可以有很多行和列。
所以現在我的問題是:獲取這些信息並將其以類似數組的形式存儲的最簡單方法是什么? 我需要輕松訪問這些信息,例如,通過搜索名為Data0
的字段,我希望能夠訪問nan
和0
。
我做了什么:我試圖將其存儲到地圖中,但這不是我想要的(或者顯然我沒有正確使用它)。 此外,我僅限於兩個要素,而我只有三個要素。 我也嘗試在數組中執行此操作,但是由於數組只能在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.