您的位置:首页 > 其它

自我整理:去除List<String[]>中String[x]中重复的记录

2016-10-27 00:00 344 查看
因为项目需求,客户给的数据文件中存在主键大小写不同去他完全相同的两条数据记录,要导入未设置区分主键字段大小写的MySQL数据库中,相同的新增主键会报主键异常。

异常发生在主键字段,进行主键的重复的去重操作,确保相同主键字段在不区分大小写的情况下只有一条数据。

利用HashSet集合,在批量插入数据库之前进行主键去重判断。

/**
* 去除主键重复存在的数据
*
* @param list
*/
private void listDuplicateRemovalWithIndexKey(List<String[]> list) {
Set<String> setKeys = new HashSet<String>();
String keyStr;
Iterator<String[]> it = list.iterator();
while (it.hasNext()) {
String[] a = it.next();
// 拼接主键值
keyStr = getIndexKeyStr(a);

// 判断主键是否已经存在
if (setKeys.contains(keyStr)) {
it.remove();
} else {
setKeys.add(keyStr);
}
}
}

getIndexKeyStr()方法为拼接主键的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: