2015-02-23 107 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 
}