2009-12-05 64 views
1

Java中是否有任何去重API?我想从数据库中删除多余的项目(例如重复的指纹),通过Java编程如何实现?Java中的去重复API

+0

交叉帖子:http://osum.sun.com/forum/topics/deduplication-apis-in-java – jheddings 2009-12-05 01:15:59

+1

如何确定您是否有重复的地方? – 2009-12-05 01:21:14

+0

@James Black,如果你可以写一个比较器,你可以决定一对元素是重复的。 – 2009-12-05 01:32:51

回答

0

下面是伪代码中的一个简单示例。如果你想要一个更好的答案,你将不得不给我们一个更好的问题。

public void deDuplicate(Array items) { 
    for(int i=0; i<items.length-1; i++) { 
    for(int j=i+1; j<items.length; j++) { 
     if(items[i].equals(items[j])) { 
     items.removeItemAt(j); 
     j--; 
     } 
    } 
    }  
} 
+1

==!= .equals() - 这可能不会产生您想要的任何结果,除了字符串和基本类型。对于对象引用,这将测试引用相等而不是值相等 - 使用.equals()来测试值相等。 – Nate 2009-12-05 01:33:15

+1

这只是伪代码......也就是说,我没有打扰所有Java特有的语法特性。 – davr 2009-12-08 05:45:53

5

没有更多信息,我会建议只使用Set。 Set的各种口味有不同的优点和缺点,但都有一个基本原则。每一个是:

一个集合不包含 重复的元素。

如果您将元素添加到Set然后再读取它们,则每个唯一元素只会出现一次。

0

简单的答案是没有用于删除数据库重复项的Java API。有一个用于查询和更新SQL数据库的Java API。它被称为JDBC。但是你将不得不弄清楚如何检测重复(不管是什么意思)并删除它们。执行此操作的SQL将高度依赖于数据库的模式以及检测重复项的方式。

0

如果您已经知道如何识别重复项,则可以在sql查询中使用“distinct”关键字。