我仍然遇到问题创建一个数组来存储我的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)。但对我来说似乎很难。
答案 0 :(得分:0)
我认为你不需要Double contentLine
。
使用LinkedHashMap<String /*nameColumn*/,Timestamp /*time*/ >
。
地图中存储的索引就是你的行。
其他方式,请使用Linkedlist<SomeYourClass>
,其中SomeYourClass
表示您的行(我认为它很容易处理):
public class Row
{
List<String> nameColumnList;
//Double contentLine; /* you don't need it*/
Timestamp time;
// ...
}