哪个是CSV文件中歌曲数据(标题,艺术家,节奏,流派)的更有效的数据结构? HashMap还是ArrayList?

时间:2016-03-12 15:49:17

标签: java csv arraylist hashmap

我正在尝试制作一个简单的音乐数据库,根据歌曲速度和流派生成播放列表。但是,我很难决定用来解析我的CSV文件的最佳数据结构。

如果我使用ArrayList,我会创建一个Song类,而ArrayList将是我的音乐数据库。歌曲类将为Title Artist Tempo和Genre设置getter和setter。我会通过使用条件来减少我们的ArrayList的内容来获得我的结果播放列表(如果节奏不是至少某个数字等)

如果我使用HashMap,我会将键设置为一对,并将值设置为配对(因此它将是HashMap<,>)。

组织此信息的最有效方法是什么?

1 个答案:

答案 0 :(得分:0)

这取决于此数据库将包含多少数据以及将搜索哪些字段。我认为最常用的方法是数据库本身的List,其中的项目是通过隐式ID追加和删除(可能是标记删除),隐式ID可能是列表中的索引。

然后,出于性能原因,您可能需要保留某种形式的索引。真实数据库中使用的数据结构是树,但您也可以为每个字段使用有序列表,并执行二进制搜索以使其简单。

另外,请注意,对于Java,有许多数据库(Derby,H2)非常小,轻量级,可以在进程中运行并具有SQL接口。