2009-12-05 60 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」關鍵字。