51,409
社区成员
发帖
与我相关
我的任务
分享
int num=dogmap.get("dog1").getHetght();//得到那个属性“70”
int num2=num+20;//加20
dog1.setHeight(num2);//设置为90
dogmap.put(dog1.getName(),dog1);//放进去,由于key值相等,所以不会新建一个同名的,只会更新
我这样写,能明白吗Dog dog = (Dog)dogmap.get(key);
if(dog.getName().equals("兰兰")){
dog.setA(dog.getA()-20);
}
public static void main(String[] args) {
Dog dog1 = new Dog("兰兰", 70, 90, "拉布拉多");
Dog dog2 = new Dog("静静", 80, 50, "雪纳瑞");
Dog dog3 = new Dog("娜娜", 60, 80, "松狮");
Dog dog4 = new Dog("球球", 90, 90, "蝴蝶犬");
Dog dog5 = new Dog("晶晶", 90, 90, "拉长");
Map<String, Dog> dogMap = new HashMap<String, Dog>();
dogMap.put(dog1.getName(), dog1);
dogMap.put(dog2.getName(), dog2);
dogMap.put(dog3.getName(), dog3);
dogMap.put(dog4.getName(), dog4);
dogMap.put(dog5.getName(), dog5);
System.out.println(dogMap.get("兰兰"));//兰兰 a=70 b=90 拉布拉多
for (Map.Entry<String, Dog> entry : dogMap.entrySet()) {
if ("兰兰".equals(entry.getValue().getName())) {
// 不知道你那个70对应的字段名是什么,随便起的
entry.getValue().setA(entry.getValue().getA() + 20);
break;
}
}
System.out.println(dogMap.get("兰兰"));//兰兰 a=90 b=90 拉布拉多
}