2015-02-23 2 views
0

У меня есть массив хранения различных млекопитающих, объекты, хранящиеся в массиве млекопитающих, таких как собаки, кошки и т.д., которые я создал с этим кодом:Перемешайте из конкретного объекта из массива

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

etc.... 

Теперь я хотите перетасовать определенный объект из массива, просто чтобы распечатать его. Предположим, я хочу распечатать объект cat из этого метода printCat - как можно изменить код ниже, чтобы я убедился, что только объекты кошки перетасовываются?

public static void printCat() { 

    Mammals item; 

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

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

Что вы подразумеваете под "shuffle out"? Можете ли вы описать, как выглядит «shuffleArray» до и после этой операции? –

+0

Незначительная вещь, которую я хотел бы указать - если экземпляры «Млекопитающие» предназначены только для представления одного млекопитающего, вы должны назвать класс «Млекопитающее». Это упростит ваш код. –

ответ

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

0

Вы можете использовать:

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