我正在尝试制作一个简单的音乐数据库,根据歌曲速度和流派生成播放列表。但是,我很难决定用来解析我的CSV文件的最佳数据结构。
如果我使用ArrayList,我会创建一个Song类,而ArrayList将是我的音乐数据库。歌曲类将为Title Artist Tempo和Genre设置getter和setter。我会通过使用条件来减少我们的ArrayList的内容来获得我的结果播放列表(如果节奏不是至少某个数字等)
如果我使用HashMap,我会将键设置为一对,并将值设置为配对(因此它将是HashMap<,>)。
组织此信息的最有效方法是什么?
答案 0 :(得分:0)
这取决于此数据库将包含多少数据以及将搜索哪些字段。我认为最常用的方法是数据库本身的List,其中的项目是通过隐式ID追加和删除(可能是标记删除),隐式ID可能是列表中的索引。
然后,出于性能原因,您可能需要保留某种形式的索引。真实数据库中使用的数据结构是树,但您也可以为每个字段使用有序列表,并执行二进制搜索以使其简单。
另外,请注意,对于Java,有许多数据库(Derby,H2)非常小,轻量级,可以在进程中运行并具有SQL接口。