2015-02-23 147 views
0

特定對象我有一個陣列中存儲不同的哺乳動物,存儲在哺乳動物數組中的對象是諸如狗,貓等我已經與此代碼創建的:洗牌出從陣列

Mammals obj = new Cats(); 
Mammals obj = new Dogs(); 

etc.... 

現在我想要從數組中洗出特定的對象,只是爲了打印出來。假設我想從這個printCat方法中打印一個cat對象 - 下面的代碼如何修改,以確保只有cat對象被洗掉了?

public static void printCat() { 

    Mammals item; 

    int index = shuffleArray.nextInt(mammals.size()); 
    item = mammals.get(index); 

    System.out.println(item); 
} 
+1

「洗牌」是什麼意思?你能描述一下'shuffleArray'在該操作之前和之後的樣子嗎? – 2015-02-23 13:18:46

+0

我想指出一點 - 如果「哺乳動物」實例只是代表一個哺乳動物,你應該叫「哺乳動物」類。它會讓你的代碼更易於理解。 – 2015-02-23 13:36:51

回答

1
public static void printCat() { 
    Mammal result; 

    do 
    { 
     int index = shuffleArray.nextInt(mammals.size()); 
     result = mammals.get(index); 
    } while (!(result instanceof Cat)); 

    System.out.println(result); 
} 

一個字的警告...確保哺乳動物集合包含運行此之前,一隻貓,或者你會停留在一個無限循環。你也可以考慮修改它,所以你不會多次選擇相同的哺乳動物。

+0

這解決了它,謝謝! – eqinna 2015-02-23 13:22:30

0

您可以使用:

if(item instanceof Cat){ 
    System.out.println(item); 
}else{ 
    //it is not cat 
}