2012-10-19 64 views
1


如何刪除使用HashMap的一個數組重複的元素,而不使用Java中的HashSet ...

下面的代碼描述去除重複排列的..

現在我需要編寫使用散列映射,用於產生鍵和值對
如何刪除使用HashMap中重複的數組元素在Java

import java.util.*; 

class TestArray{ 

public static void main(String arg[]) 
{ 

ArrayList<String> wordDulicate = new ArrayList<String>(); 

    wordDulicate.add("chennai"); 
    wordDulicate.add("bangalore"); 
    wordDulicate.add("hyderabad"); 
    wordDulicate.add("delhi"); 
    wordDulicate.add("bangalore"); 
    wordDulicate.add("mumbai"); 
    wordDulicate.add("mumbai"); 
    wordDulicate.add("goa"); 
    wordDulicate.add("calcutta"); 
    wordDulicate.add("hyderabad"); 

    ArrayList<String> nonDupList = new ArrayList<String>(); 

    Iterator<String> dupIter = wordDulicate.iterator(); 
    while(dupIter.hasNext()) 
    { 
    String dupWord = dupIter.next(); 
    if(nonDupList.contains(dupWord)) 
    { 
     dupIter.remove(); 
    }else 
    { 
     nonDupList.add(dupWord); 
    } 
    } 
    System.out.println(nonDupList); 
} 
    } 

+0

爲什麼你想這樣做? –

+0

更簡單的方法是做'新的ArrayList (wordDuplicate)'。你想存儲什麼值? –

+0

我需要存儲爲使用HashMap的鍵/值對... – Ashok

回答

0

那麼HashMap會阻止你輸入重複鍵,和HashSet一樣。實際上,HashSet的許多實現只是在底層使用了一個HashMap。

所以,你可以這樣做:

HashMap<String, String> map = new HashMap<String, String>(); 
for (String s : WordDuplicate) 
    map.put(s, s); 

現在,您可以訪問鍵/值就像一個HashMap。

3

HashSet甲在方面實現無論如何,。如果您特別想使用HashMap,請使用與HashSet相同的方法:將假常數new Object()用作各處的映射值。

+0

我需要不使用HashSet .... – Ashok

+0

我沒有得到您的評論。我的答案解釋瞭如何使用**而不使用HashSet **。這與您接受的答案几乎完全相同。 –