Java 如何从类的HashSet或HashMap修改变量类
我有一个HashSet和类的HashMap。如何修改类变量? 所以我有一个类数据,然后创建数据的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
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();