我如何比较hashset的元素?

时间:2012-12-04 20:23:38

标签: java

HashSet<String> noDuplicate = new HashSet<String>();
for(int i=0;i<strings.length;i++)
{
     for(int a=0;a<strings2.length;a++)
     {
         if(noDuplicate.get(i).equals(strings2[a]))
             //blahblah code here
     }
}

但是get不起作用,我不知道如何使用迭代器,如果这是用于遍历hashset元素的方法。我想做点什么:

for(int i=0;i<strings.length;i++)
{
     for(int a=0;a<strings2.length;a=a+2)
     {
         if(node_marked_array.get(i).equals(strings2[a]))
             //blahblah code here
     }
}

但由于重复值,我被告知要使用hashset。

3 个答案:

答案 0 :(得分:1)

Set根据定义没有顺序,因此不能通过get方法像数组或列表一样编入索引。但是,您仍然可以使用for-each循环(或使用Set方法返回的迭代器)遍历iterator()的元素。

例如,如果我有Set名为set,其中包含字符串"a""b""c"

for (String s : set) {
    System.out.println(s);
}
a
b
c

答案 1 :(得分:1)

改为使用HashSet#contains

HashSet<String> noDuplicate = new HashSet<String>();
for(int i=0;i<strings.length;i++){
    for(int a=0;a<strings2.length;a++){
         if(noDuplicate.contains(strings2[a]))
         //blahblah code here
    }
}

答案 2 :(得分:-1)

我想这会有所帮助

    Iterator iter=hm.keySet().iterator();
           while(iter.hasNext()){ 
              String key = (String)iter.next();
             if(key.equals(str)){
                  val1 = (String)hm.get(key);
               }
           }