今天遇到这样一个问题,解决了很久,最终才能如愿实现,现记录一下实现方案。
问题是这样的,我现在有一个指定格式的文档数据,数据中字段采用指定分割符分割,类似scv格式的数据采用,分割一样,我们需要读取这些数据,将数据保存为指定的模型。这个是一个非常正规的操作,现在的需求是,我文档的字段排序是错乱的,需要用户手动去选择某个字段具体在哪个位置。这个问题确实让我头疼了。具体描述是这样的
我们有字段 A,B,C,D,E,F
文档中有0,1,2,3,4,5,6,7,8,9,10列
我们默认:
A->1
B->2
C->3
D->4
E->5
F->6
7,8,9,10列忽略
然后当用户将A列放置在第2列时我们的数据变化
A、A、C、D、E、F、空、空、空、空
当我们将A放置在第8列时我们数据变化
A、B、C、D、E、F、空、A、空、空
我们虽然只有A-F5个字段,但是当用户选择后,数据会发生变大的情况
我本来想用一个Map,来分别存储Key和value,但是Map不太好按照顺序查找,这让我很难受
于是我选择了用两个List来存储字段和位置
调整后的存储结构如下
字段数组: A、B、C、D、E、F、A
位置数组: 0、1、2、3、4、5、8
这样,我知道有字段名,就能对应的找到字段的位置。
说起来很简单,但是业务上我要考虑很多,所以还是让我费了一会的功夫,就当记录着玩吧