2013-10-12 33 views
0

此方法除去接受一組字符串,然後刪除偶數長度的一組的所有字符串。 的問題是,我知道,所以我必須給我們一個迭代器,但是,我怎麼刪除特定的「元素」從一組集不通過元素算?如何從一組

private static void removeEvenLength(Set<String> thing) { 
    Iterator<String> stuff = thing.iterator(); 

    while (stuff.hasNext()) { 
     String temp = stuff.next(); 
     if (temp.length() %2 == 0) { 
      temp.remove(); // What do I do here? 
     } 
    } 
} 
+0

可能重複迭代器(http://stackoverflow.com/questions/8892027/remove-entries-from-the-list-using-iterator) – SpringLearner

回答

3
private static void removeEvenLength(Set<String> thing) { 
     thing.add("hi"); 
     thing.add("hello"); 
      Iterator<String> stuff = thing.iterator(); 
      System.out.println("set"+thing); 
      while (stuff.hasNext()) { 
       String temp = stuff.next(); 
       if (temp.length() %2 == 0) { 
        stuff.remove(); 
       } 
      } 
      System.out.println("set"+thing); 
} 
5

嘗試使用迭代器

stuff.remove(); 
0

如果您使用的是Java 8,你可以嘗試像這樣的:[使用從列表中刪除條目

public static void removeEvenLength(final Set<String> set){ 
    set.stream().filter(string -> string.length() % 2 == 0).forEach(set::remove); 
}