25.使用Iterator和增強型for循環遍歷Map集合


/**
* 寵物類,狗狗和企鵝的父類。
*/
public abstract class Pet {
    protected String name = "無名氏";// 昵稱
    protected int health = 100;// 健康值
    protected int love = 0;// 親密度
    
    public abstract void eat();  //抽象方法eat(),負責寵物吃飯功能。
    
    /**
     * 無參構造方法。
     */
    public Pet() {    
    }
    /**
     * 有參構造方法。
     * @param name  昵稱
     */
    public Pet(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public int getHealth() {
        return health;
    }
    public int getLove() {
        return love;
    }
    /**
     * 輸出寵物信息。
     */
    public void print() {
        System.out.println("寵物的自白:\n我的名字叫" + this.name + 
                ",健康值是"    + this.health + ",和主人的親密度是"
                + this.love + "。");
    }
}
/**
 * 狗狗類,寵物的子類。*/
public class Dog extends Pet {
    private String strain;// 品種
    /**
     * 有參構造方法。
     * @param name   昵稱
     * @param strain   品種
     */
    public Dog(String name, String strain) {
        super(name); 
        this.strain = strain;
    }
    public String getStrain() {
        return strain;
    }
    /**
     * 重寫父類的print方法。
     */
    public void print(){
        super.print(); //調用父類的print方法
        System.out.println("我是一只 " + this.strain + "。");
    }
    /**
     * 實現吃飯方法。 
     */
    public void eat() {
        super.health = super.health + 3;
        System.out.println("狗狗"+super.name + "吃飽啦!健康值增加3。");
    }
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import cn.jbit.epet.poly.Dog;

/**
 * 測試通過Iterator和增強型for循環遍歷Map集合
 */
public class Test5 {
    public static void main(String[] args) {

        /* 1、創建多個狗狗對象*/
        Dog ououDog = new Dog("歐歐", "雪娜瑞");
        Dog yayaDog = new Dog("亞亞", "拉布拉多");
        Dog meimeiDog = new Dog("美美", "雪娜瑞");
        Dog feifeiDog = new Dog("菲菲", "拉布拉多");
        /* 2、創建Map集合對象並把多個狗狗對象放入其中*/
        Map dogMap=new HashMap();
        dogMap.put(ououDog.getName(),ououDog);
        dogMap.put(yayaDog.getName(),yayaDog);
        dogMap.put(meimeiDog.getName(),meimeiDog);
        dogMap.put(feifeiDog.getName(),feifeiDog);
        /*3、通過迭代器依次輸出集合中所有狗狗的信息*/
        System.out.println("使用Iterator遍歷,所有狗狗的昵稱和品種分別是:");
        Set keys=dogMap.keySet();//取出所有key的集合
        Iterator it=keys.iterator();//獲取Iterator對象
        while(it.hasNext()){
            String key=(String)it.next();  //取出key
            Dog dog=(Dog)dogMap.get(key);  //根據key取出對應的值
            System.out.println(key+"\t"+dog.getStrain());
        }
        /*//使用foreach語句輸出集合中所有狗狗的信息
         for(Object key:keys){
            Dog dog=(Dog)dogMap.get(key);  //根據key取出對應的值
            System.out.println(key+"\t"+dog.getStrain());    
        }
        */    
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM