Java 通过与sprin批处理有关的某个条件的某行

Java 通过与sprin批处理有关的某个条件的某行,java,algorithm,spring-batch,Java,Algorithm,Spring Batch,对不起,这对一些人来说可能是一个很难回答的问题,但它只是在我脑海中闪过,我认为有必要修正我的想法,并从一些专家那里得到相关的建议。多谢各位 我使用SpringBatch读取记录行,然后转换为新模型 我的所有文件行都具有以下格式: propertie1 ; prop2 ; prop3 ; prop4 ; prop5 这个过程是这样的:我读这一行,然后把它传递给处理器去做一些事情 我的问题是,我应该只向项目处理器传递具有以下条件的行: If for the same value of proper

对不起,这对一些人来说可能是一个很难回答的问题,但它只是在我脑海中闪过,我认为有必要修正我的想法,并从一些专家那里得到相关的建议。多谢各位

我使用SpringBatch读取记录行,然后转换为新模型

我的所有文件行都具有以下格式:

propertie1 ; prop2 ; prop3 ; prop4 ; prop5
这个过程是这样的:我读这一行,然后把它传递给处理器去做一些事情

我的问题是,我应该只向项目处理器传递具有以下条件的行:

If for the same value of property 5 there are 2 or more lines
- a line with prop 4 = 0 
- a line with prop 4 = 1 
and all values are identical (prop1, prop2, prop3 , ...)
send to the processor only the line which prp 4 = 1
因此,作为第一个解决方案,我想使用一个映射来存储验证此条件的所有行,然后从该映射将所有记录传递给处理器:

算法:

  • 逐行读取文件
  • 将行存储在地图结构上,如下所示:[prop5,line]
  • 如果新行具有相同的道具5(地图上存在键),且具有相同的值,则我将通过测试道具4,并仅存储值等于1的行
  • 最后,我有一张地图,上面有所有符合条件的线条
  • 根据该映射,进行迭代,并将每个记录传递给处理器以继续转换

  • 那么,如果我的算法是正确的,它是任何想法都能帮助我找到的最好的解决方案,最好的仿真和智能

    对我来说似乎没问题,但您应该在步骤中使用块来避免内存不足异常


    问题出在哪里?我想和大家分享一下我的策略,看看是否还有其他方法可以做,或者是否有太多的方法。如果地图适合你的记忆,这听起来不错。谢谢你的合作,你认为这是最好的方法吗?