如何在不使用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);
}
}
答案 0 :(得分:3)
HashSet
无论如何都是以HashMap
实现的。如果您特别想使用HashMap
,请使用与HashSet
相同的方式:在任何地方使用虚拟常量new Object()
作为地图值。
答案 1 :(得分:0)
HashMap会阻止您输入重复键,就像HashSet一样。实际上,许多HashSet实现只是在底层使用HashMap。
所以你可以这样做:
HashMap<String, String> map = new HashMap<String, String>();
for (String s : WordDuplicate)
map.put( s, s );
现在您可以像HashMap一样访问键/值。
答案 2 :(得分: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);
}
}