繁体   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