自我整理:去除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()方法为拼接主键的方法。
异常发生在主键字段,进行主键的重复的去重操作,确保相同主键字段在不区分大小写的情况下只有一条数据。
利用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()方法为拼接主键的方法。
相关文章推荐
- 去除List<Map<String,Object>>中的map的重复值(精简版)
- 去除List<Map<String,Object>>中的map中的重复值
- c#中如何去除List<String>中的重复项
- Linq List<T>.Distinct() 去除对象重复
- List<T>去除重复对象
- [原创]JAVA技巧:去除ArrayList<Object>里面的重复记录
- 去除List<String>中的重复元素
- 去除List<Object>集合中重复的元素(利用HashSet的特性---无重复元素)
- 去除List<Object>集合中重复的元素
- FCL应用技巧之------使用List<T>的Distinct()去除重复元素
- 如何过滤List<Map<String,Object>> 中的重复Map
- .NET中string[]数组和List<string>泛型的相互转换以及Array类的Sort()方法 【整理】
- 根据list<object>对象中某个字段去除重复值
- List<T>中去除重复的元素
- 合并List<Map<String,String>>中的重复数据并对某个字段做累加
- 合并2个list<string>,并且去除掉重复项目
- 去除List列表中重复值(稍作调整,也适合于List<T> 和 List<?>)
- List<Map<String,String>>快速排序、
- ibatis 返回list<String[]>----resultClass="hashMap" 可以实现
- 生成最大值范围内无重复值的长度为最大值的随机序列List<int>