0
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は機能しません。それがハッシュセットの要素を調べるために使用する方法である場合、イテレータの使用方法がわかりません。私は次のようなことをしたい:

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

しかし、値が重複しているため、ハッシュセットを使用するように言われました。

4

3 に答える 3

1

Setsは定義上順序がないため、配列やgetメソッドを介したリストのようにインデックスを付けることはできません。Setただし、for-eachループを使用して(またはメソッドによって返されるイテレータを使用して)aの要素を反復処理することはできますiterator()

たとえば、文字列を含むSet呼び出しがあった場合、および:set"a""b""c"

for (String s : set) {
    System.out.println(s);
}
a
b
c
于 2012-12-04T20:25:27.010 に答える
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
    }
}
于 2012-12-04T20:25:30.590 に答える
-1

これが役立つと思います

    Iterator iter=hm.keySet().iterator();
           while(iter.hasNext()){ 
              String key = (String)iter.next();
             if(key.equals(str)){
                  val1 = (String)hm.get(key);
               }
           }
于 2013-08-22T09:58:43.267 に答える