求助啊求助,想不出来了

qq_39812557 2017-08-18 04:52:10
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,"拉长");
//1.迭代得方式
Map dogmap = new HashMap();
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("方式1:使用Iterator遍历所有得信息");
//1.迭代得方式
Set keys = dogmap.keySet();

//获得iterator对象
Iterator it = keys.iterator();
while(it.hasNext()){
String key = (String)it.next();//获得键名
System.out.println(key);
Dog dog = (Dog)dogmap.get(key);
dog.print();
}
现在需要把兰兰的70加20
把兰兰的90减30
然后在存到集合里
怎么做=。=
别说创建一个对象然后键名相同,把值改掉覆盖
我需要的是把那个属性拿出来加20然后在覆盖进集合
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Love_云宝儿 2017-08-18
  • 打赏
  • 举报
回复
如果兰兰“70”对应的成员变量名字为height, 把兰兰的70加20的操作是:

int num=dogmap.get("dog1").getHetght();//得到那个属性“70”
int num2=num+20;//加20
dog1.setHeight(num2);//设置为90
dogmap.put(dog1.getName(),dog1);//放进去,由于key值相等,所以不会新建一个同名的,只会更新
我这样写,能明白吗
繁华终归落尽 2017-08-18
  • 打赏
  • 举报
回复
Dog dog = (Dog)dogmap.get(key);
			if(dog.getName().equals("兰兰")){
				dog.setA(dog.getA()-20);
			}
Freefish1994 2017-08-18
  • 打赏
  • 举报
回复

	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 拉布拉多
	}

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧