import java.util.Collection; import java.util.HashSet; import java.util.Iterator; public class Test { public static void main(String[] args) { Collection<Name> c = new HashSet<Name>(); c.add(new Name("f1", "l1")); c.add(new Name("f2", "l2")); c.add(new Name("f3", "l3")); Iterator<Name> i = c.iterator(); while(i.hasNext()) { Name n = (Name)i.next(); System.out.println(n.getFirstName() + " "); } Collection<Name> c1 = new HashSet<Name>(); c1.add(new Name("fff1", "lsss1")); c1.add(new Name("g2", "l2")); c1.add(new Name("fggf3", "lfgfg3")); for(Iterator<Name> j = c1.iterator();j.hasNext();) { Name name = (Name)j.next(); if(name.getFirstName().length() < 3) { j.remove(); } } System.out.println(c); System.out.println(c1); } } class Name { private String firstName; private String lastName; Name(String firstName, String lastName) { this.setFirstName(firstName); this.setLastName(lastName); } public void setFirstName(String firstName) { this.firstName = firstName; } public String getFirstName() { return firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getLastName() { return lastName; } public String toString() { return firstName + " " + lastName; } public boolean equals(Object obj) { if(obj instanceof Name) { Name name = (Name) obj; return (firstName.equals(name.firstName)) && (lastName.equals(name.lastName)); } return super.equals(obj); } public int hashCode() { return firstName.hashCode(); } }