1


Javaでハッシュセットを使用せずに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は実装されています。HashMap特にを使用する場合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 に答える