我正在使用Apache POI从Word文档中提取表。这些表具有键的第一列,值的第二列,并且可以是任意数量的此类配对列。目前,我正在迭代每个表,每一行,每个单元格,以按行顺序将所有单元格依次存储在List<String>
最终目标是将结果存储在CSV
中,其中包含2列Attribute name
,Attribute value
和K-V
列应以自上而下的方式进行迭代,然后进行下一个2列(如果存在)。
我正在遍历List<String>
(i
是索引计数器)并使用下面的伪代码来这样做:
keyB
和valueB
并将keyB
初始化为true
,并将valueB
初始化为false
。If(keyB)
然后将当前字符串存储为Attribute name
并执行i++
。将keyB
标记为false
,并将valueB
标记为true
。if(valueB)
然后将当前字符串存储为Attribute value
,并进行i=i+<NO_OF_COLUMNS> -1
到下一行存在的键的位置,并将keyB
标记为true
。 / li>
topKeyInd
,它已初始化为第一行的键索引(List
的第0个元素)if(i+<NO_OF_COLUMNS> -1)> List.size())
,然后我们必须从下一对K-V列开始(如果存在)。因此,i = topKeyInd +2
进入第3列的第一个键单元格,并相应地更新topKeyInd
。List
的最后一个元素。这似乎很复杂,有没有更好的处理方法?
答案 0 :(得分:0)
我正在使用ConcurrentHashMap(例如:ConcurrentHashMap),因为它既快速又线程安全:)
例如:
public static ConcurrentHashMap<String, String> hashMap = new concurrentHashMap<>();
for( int i = 0 ; i< list.size(); i+=2){
hashMap.put(list.get(i), list.get(i+1));
}
Here,您有一些简单地图示例。