CSV 数据生成降序序列

  • 本文关键字:降序 数据 CSV java csv
  • 更新时间 :
  • 英文 :


我有一个CSV文件要读取,示例数据如下:

SEQ     NAME    GROUP
 1      MARK      A
 2      KEVIN     A
 3      JOE       A
 1      MARY      B
 2      JANE      B
 3      ANN       B
 4      MAY       B

我找不到一种简单的方法来在 Java 中执行此操作,该方法将读取上面的 CSV 文件并添加另一列,该列只是一个降序序列,如REV列:

SEQ     REV     NAME   GROUP
1       3       MARK    A
2       2       KEVIN   A
3       1       JOE     A
1       4       MARY    B
2       3       JANE    B
3       2       ANN     B
4       1       MAY     B

我知道如何使用缓冲阅读器或扫描仪,但不知道如何基于组列创建反向序列,因为您必须知道每个组的最大长度。

有什么想法吗?

更新:抱歉,我必须使用没有任何库的纯java,因为我们正在使用遗留系统。

你可以尝试使用supercsv,它将为您提供列值map的映射(检查方法CsvMapReader(然后,您可以根据需要对其进行迭代和分组。

希望这有帮助

如果您正在阅读一行,则不知道当前组的组长度。所以把它分成两遍。

刀路 1 仅用于确定每个组的组长度。您可以将其存储在一个Map<String, Integer>中,组名作为键,并且(到目前为止(最大组长度。对于每一行,您必须查看该组是否已经有一个条目。如果是,请递增该值。如果不是此组的存储 1。

然后在 Pass 2 中,您再次逐行读取文件。但是通过上面的地图,您已经知道当前组的最大组长度。

如果文件太大而无法将所有组存储在内存中,则应将它们存储在文件中,例如使用RandomAccessFile。但是增加内存更容易。

最新更新