gpt4 book ai didi

java - 保存已解析 CSV 文件内容的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:04 29 4
gpt4 key购买 nike

我正在尝试找出用 Java 解析 csv 文件的最佳方法。现在每一行都有 X 量的信息。例如,第一行最多可以有 5 个字符串单词(用逗号分隔),而接下来的几行可能有 3 或 6 个或其他。

我的问题不是从文件中读取字符串。只是为了清楚。我的问题是什么数据结构最适合保存每一行以及该行中的每个单词?

起初我考虑过使用二维数组,但问题是数组大小必须是静态的(第二个索引大小将包含每行中有多少个单词,这可能因行而异) .

这是 CSV 文件的前几行:

0,MONEY
1,SELLING
2,DESIGNING
3,MAKING
DIRECTOR,3DENT95VGY,EBAD,SAGHAR,MALE,05/31/2011,null,0,10000,07/24/2011
3KEET95TGY,05/31/2011,04/17/2012,120050
3LERT9RVGY,04/17/2012,03/05/2013,132500
3MEFT95VGY,03/05/2013,null,145205
DIRECTOR,XKQ84P6CDW,AGHA,ZAIN,FEMALE,06/06/2011,null,1,1000,01/25/2012
XK4P6CDW,06/06/2011,09/28/2012,105000
XKQ8P6CW,09/28/2012,null,130900
DIRECTOR,YGUSBQK377,AYOUB,GRAMPS,FEMALE,10/02/2001,12/17/2007,2,12000,01/15/2002

最佳答案

你可以使用 Map<Integer, List<String>> .键是 csv 文件中的行号,列表是每行中的单词。

另外一点:您可能最终会使用 List#get(int)方法很常见。如果是这种情况,请不要使用链表。这是因为 get(int)对于链表是 O(n)。我认为 ArrayList是您最好的选择。

编辑(基于 AlexWien 的观察):

在这种特殊情况下,由于键是行号,因此会产生一组连续的整数,更好的数据结构可能是 ArrayList<ArrayList<String>> .这将导致更快的 key 检索。

关于java - 保存已解析 CSV 文件内容的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21642548/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com