1


如何在不使用 java 中的 hashset 的情况下使用 HashMap 删除数组中的重复元素...

下面的代码描述了删除数组中的重复元素。

现在我需要使用 hashmap 编写来生成键和值对

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);
}
  }

4

3 回答 3

3

AHashSet是按照 a 来实现的HashMap。如果您特别想使用 a HashMap,请以与使用相同的方式使用它HashSet:在任何地方使用虚拟常量new Object()作为映射值。

于 2012-10-19T10:16:34.400 回答
0

那么 HashMap 会阻止你输入重复的键,就像 HashSet 一样。实际上,许多 HashSet 的实现只是在底层使用了 HashMap。

所以你可以这样做:

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

现在您可以像访问 HashMap 一样访问键/值。

于 2012-10-19T10:22:30.040 回答
0
import java.util.HashSet;
import java.util.Stack;

public class stackdupes {

    public static void main(String[] args) {
        Stack<Integer> st = new Stack<Integer>();
        int[] arr= {1,2,3,3,4,5,5,7};
        HashSet<Integer> set = new HashSet<Integer>();

        for (int i=0;i<arr.length;i++) {
            if(set.add(arr[i]) == true)
            st.push(arr[i]);
        }
        System.out.println(st); 

    }   
}
于 2018-04-26T03:53:44.810 回答