gpt4 book ai didi

java - 根据列中的重复项从数据中删除整行

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:10 26 4
gpt4 key购买 nike

所以这是我的问题。我有一个巨大的数据文本文件,我需要通过显然使用 java 程序将所有这些数据快速输入到 mySQL 数据库中。我唯一的问题是,数据由某个 ID 标识。其中一些 ID 有重复,并且包含彼此相同的所有信息。为了排序和清晰起见,我想删除所有这些。

解决此问题的最佳方法是什么?如果有人可以提供帮助,我将不胜感激!

谢谢。

最佳答案

读取数据时有一个 HashMap 或哈希集。检查 id 是否存在于 hasmap/hashset 中,如果存在则继续。否则进入 set/map 并插入。

旁白:hashmap 和 hashset 的区别是 hashset 只取值,而 hashmap 取键值。但是,Hashset 本身在内存中使用 HashMap ,只是为值插入一个虚拟对象。请参阅:Differences between HashMap and Hashtable?

哈希集示例:

    HashSet<Integer> distinctIds = new HashSet<Integer>();

MyRowData rowdata;
int rowID;

while((rowdata = this.getRowData())!=null ) // or however you iterate over the rows using reader etc
{
rowID = rowdata.getRowID();

if(!distinctIds.contains(new Integer(rowID)))
{
distinctIds.add(rowID);
inertDataInMysql(rowdata); //however you insert your data here
System.out.println("Adding " + rowID);
}
}

您可以使用批量插入通过对多行执行交换插入来进一步加速您的代码。见:

关于java - 根据列中的重复项从数据中删除整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15965360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com