Я проверял множество деревьев и обратите внимание, что я не могу изменить значение в дерево набор для определенного моего пользователя объектаTreeSet Update Value Object кажется ошибка в реализации
например
class Emp implements Comparable<Emp>
{
int id;
String name;
public Emp(int id,String name)
{
this.id=id;
this.name=name;
}
@Override
public int compareTo(Emp obj) {
if(obj.id>this.id)
return -1;
else if(obj.id<this.id)
return 1;
else
return 0;
}
@Override
public String toString() {
return "Emp Id:"+id+" Emp Name:"+name;
}
}
public static void main(String[] args) {
treesetwithCustom();
}
public static void treesetwithCustom()
{
TreeSet<Emp> set=new TreeSet<Emp>();
set.add(new Emp(1,"ABC"));
set.add(new Emp(2,"XYZ"));
set.add(new Emp(1,"PQR"));
System.out.println(set);
}
Когда Я печатаю набор, который показывает значение для Emp ID 1 как ABC, а не PQR
когда я проверяю rt.jar для реализации набора деревьев. Я замечаю, что в реализации реализована ошибка, поскольку TreeSet внутренне использует реализацию, предоставляемую TreeMap и вызвать метод put TreeMap.
В rt.jar код пут Обновить значение и не Key и TreeSet значение для ключа всегда передается как настоящее
Пожалуйста, помогите мне понять, если есть какой-либо способ достижения обновление в наборе деревьев и если мое понимание правильное в отношении ошибки.
_Adds указанный элемент этого множества, если оно не уже есть. Что вы об этом думаете? –
, когда я помещаю объект emp с тем же идентификатором с другим хэш-набором имени, сохраняйте старый объект, даже если значение для имени изменяется, как я могу обновить значение в TreeSet –
Это ожидаемое поведение 'TreeSet' как цитата из javadoc из моего последнего комментария. –