所以,我有以下相关代码:去除TreeSet的
public static TreeSet<Object> set;
public static void remove(Object object){
for (Object o : set){
if (o.equals(object)){
System.out.println("removing " + o);
set.remove(o);
}
}
}
我补充几个对象到TreeSet中,然后调用具有一定object1作为参数来移除。 object1在集合中,如
removingobject1
被打印出来。
然而,当我再使用一个for循环这样打印出一整套之后:
for (Object o: set){
System.out.println(o);
}
它仍然打印出一整套包括object1。 Java之前已经能够认识到,但在调用set.remove(o)的结果中绝对没有任何结果。
编辑:我试图保持这个问题一般地,但这里是我使用的对象:
public class Player implements Comparable<Player>{
public String firstname;
public String lastname;
public int value;
public Position position;
public Player(String firstname, String lastname, int value, Position position){
this.firstname = firstname;
this.lastname = lastname;
this.value = value;
this.position = position;
}
public String toString(){
return(firstname + " " + lastname")
}
public int compareTo(Player player){
if (this.value > player.value){
return -1;
} else {
return 1;
}
}
对象是否实现了'hashCode()'?请发布[mcve]。 – shmosel
请显示一些代码,显示您的设置和对象的操作。你如何创建你的对象,他们如何实现hashCode(),你如何将它们添加到集合? –
您正在使用的对象类是你还设置任何属性?如果你在这里粘贴你的代码,如果我们更容易帮助你。 – Maverick