我在 ArrayList 中有多行数据。我需要从 List 中读取数据并将其转换为另一种格式并写入平面文件。
List Data:
General Details|S|!|!|66T4051|N|MACH|a
Charge Details|S|!|!|66T4051| 3827|N|
Charge Details|S|!|!|66T4051| 3828|N|
Insurance Details|S|!|!|66T4051| f|
Insurance Details|S|!|!|66T4051| h|
Insurance Details|S|!|!|66T4051| p|
这里 GeneralDetails 计数为 1,这是主数据。收费明细计数为 2。保险明细计数为 3。
我需要将上述列表数据转换为以下格式的一个字符串。
ROW1|General Details|S|!|!|66T4051|N|MACH|a|2|Charge Details|S|!|!|66T4051| 3827|N|Charge Details|S|!|!|66T4051| 3828|N|3|Insurance Details|S|!|!|66T4051| f|Insurance Details|S|!|!|66T4051| h|Insurance Details|S|!|!|66T4051| p$
我需要在每条记录之前放置计数。让我们说。
ROW1 - 1 is the count of General Details
|2|Charge Details - 2 is the count of Charge Details
|3|Insurance Details - 3 is the count of Insurance Details
请建议如何实现这一目标?
我得到了每一行的计数。
map>{Charge Details=2, General Details=1,Insurance Details=3}
但在那之后我无法继续。
public void processRows(LinkedList<LinkedList<Object>> linkedList,String intfCode,String bankId)
{
for(int i=0;i<linkedList.size();i++)
{
List<Object> list = linkedList.get(i);
//System.out.println("list>>"+i+""+list);
List<Object> tableNameList = new ArrayList<Object>();
LinkedHashMap map = new LinkedHashMap();
for(int j=0;j<list.size();j++)
{
String rowOfLine = (String)list.get(j);
String split[] = (rowOfLine.split("\\|"));
String tableName=split[0];
tableNameList.add(tableName);
}
for(int j=0;j<list.size();j++)
{
String rowOfLine = (String)list.get(j);
String split[] = (rowOfLine.split("\\|"));
String tableName=split[0];
int count = Collections.frequency(tableNameList, tableName);
System.out.println("count>>"+count);
if(!(map.containsKey(tableName)) && tableName!=null)
{
map.put(tableName, count);
}
//transformRow(tableName,intfCode,bankId,rowOfLine,collateralType);
}
System.out.println("map>"+map);
}
}