在不使用迭代器的情况下能删除存在集合内的对象吗?
如:Set set=new HashSet();使用set.remove();删除对象,而不使用iter.remove()。import java.util.*;public class TestSet {
public static void main(String[] args) {
Person p1 = new Person(1, "per1", "male");
Person p2 = new Person(2, "per2", "male");
Person p3 = new Person(3, "per3", "male");
Person p4 = new Person(4, "per4", "male");
Person p5 = new Person(5, "per5", "male");
Person removePerson = new Person(4, null, null);
Set set = new HashSet();
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
set.add(p5);
Iterator iter = set.iterator();
System.out.println("利用集合的remove():方法删除:"); System.out.println("利用迭代器的remove()方法删除:");
Iterator iter2=set.iterator();
while (iter2.hasNext()) {
Person person = (Person) iter2.next();
if (person.equals(removePerson)) {
iter2.remove();
}
}
System.out.println(set);
System.out.println(set.size());
}
}class Person {
int id; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} String name, sex; public Person(int id, String name, String sex) {
this.id = id;
this.name = name;
this.sex = sex;
} @Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", sex=" + sex + "]";
} public boolean equals(Object obj) {
if (obj == null) {
return false;
} if (obj instanceof Person) {
Person tempPerson = (Person) obj;
if (this.id == tempPerson.id) {
return true;
}
}
return false; } public int hashCode() {
return this.name.hashCode();
}}
如:Set set=new HashSet();使用set.remove();删除对象,而不使用iter.remove()。import java.util.*;public class TestSet {
public static void main(String[] args) {
Person p1 = new Person(1, "per1", "male");
Person p2 = new Person(2, "per2", "male");
Person p3 = new Person(3, "per3", "male");
Person p4 = new Person(4, "per4", "male");
Person p5 = new Person(5, "per5", "male");
Person removePerson = new Person(4, null, null);
Set set = new HashSet();
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
set.add(p5);
Iterator iter = set.iterator();
System.out.println("利用集合的remove():方法删除:"); System.out.println("利用迭代器的remove()方法删除:");
Iterator iter2=set.iterator();
while (iter2.hasNext()) {
Person person = (Person) iter2.next();
if (person.equals(removePerson)) {
iter2.remove();
}
}
System.out.println(set);
System.out.println(set.size());
}
}class Person {
int id; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} String name, sex; public Person(int id, String name, String sex) {
this.id = id;
this.name = name;
this.sex = sex;
} @Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", sex=" + sex + "]";
} public boolean equals(Object obj) {
if (obj == null) {
return false;
} if (obj instanceof Person) {
Person tempPerson = (Person) obj;
if (this.id == tempPerson.id) {
return true;
}
}
return false; } public int hashCode() {
return this.name.hashCode();
}}
删除单个:
set.remove(p1);全删:
set.clear();
while (iter2.hasNext()) {
Person person = (Person) iter2.next();
if (person.equals(removePerson)) {
set.remove(person);
}
}
package com.xuz.csdn.nov24;import java.util.HashSet;
import java.util.Set;public class SetRemove { public static void main(String[] args) {
Set<String> set = new HashSet<String>();
set.add("5");
set.add("2");
set.add("4");
set.add("1");
set.remove("5");
System.out.println(set);
}}