Java 如何从类的HashSet或HashMap修改变量类

Java 如何从类的HashSet或HashMap修改变量类,java,class,hashmap,hashset,Java,Class,Hashmap,Hashset,我有一个HashSet和类的HashMap。如何修改类变量? 所以我有一个类数据,然后创建数据的HashSet和数据的HashMap 然后是人口。稍后,我想修改值名称和编号 class Data { private String name; private int number; public Data(String name, int number) { this.name = name; this.number = number; } public String toSt

我有一个HashSet和类的HashMap。如何修改类变量? 所以我有一个类数据,然后创建数据的HashSet和数据的HashMap 然后是人口。稍后,我想修改值名称和编号

class Data {
private String name;
private int number;

public Data(String name, int number) {
    this.name = name;
    this.number = number;
}

public String toString() {
    return name + ":" + number;
}
public void modifyNumber (int i) {
    this.number+=i;
} }

public class Main {

public static void main(String[] args) {
Set<Data> dataSet = new LinkedHashSet<Data>();
 Map<String, Data> map = new LinkedHashMap<String, Data>();
 // I do the dataSet and map population, then do something else
 //now I want to modify the value of name and number  for HashSet and HashMap of Class
}}
类数据{
私有字符串名称;
私有整数;
公共数据(字符串名称、整数){
this.name=名称;
这个数字=数字;
}
公共字符串toString(){
返回名称+“:”+编号;
}
公共无效修改编号(int i){
这个数+=i;
} }
公共班机{
公共静态void main(字符串[]args){
Set dataSet=new LinkedHashSet();
Map Map=newlinkedhashmap();
//我做数据集并映射人口,然后做其他事情
//现在我想修改类的HashSet和HashMap的name和number的值
}}

数据
类创建
getter
setter
方法 然后获取对象并更改它

public void setName(String name){
this.name=name;
}

map.get("id").setName("newname");
map.get("id").modifyNumber(number);

要在
HashSet
中工作,
Data
类应该重写
equals
hashcode
方法

否则,机组将无法按预期运行

在您的实现中,您未能覆盖这些方法

但是当您这样做时,您无法更改
equals
hashcode
中使用的属性值。这可能会导致对象的新值位于错误的哈希桶中

您可以更改其他属性

hashset.iterator.next().setXXX();