从数组中洗出特定对象
Shuffle out a specific object from array
我有一个存储不同哺乳动物的数组,存储在哺乳动物数组中的对象是我用这段代码创建的狗、猫等:
Mammals obj = new Cats();
Mammals obj = new Dogs();
etc....
现在我想从数组中洗出一个特定的对象,只是为了打印出来。假设我想从此 printCat 方法打印出一个猫对象 - 如何修改下面的代码以确保只有猫对象被洗牌?
public static void printCat() {
Mammals item;
int index = shuffleArray.nextInt(mammals.size());
item = mammals.get(index);
System.out.println(item);
}
您可以使用:
if(item instanceof Cat){
System.out.println(item);
}else{
//it is not cat
}
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);
}
一个警告...确保哺乳动物集合在 运行 之前包含一只猫,否则您将陷入无限循环。您也可以考虑修改它,这样您就不会 select 多次使用相同的哺乳动物。
我有一个存储不同哺乳动物的数组,存储在哺乳动物数组中的对象是我用这段代码创建的狗、猫等:
Mammals obj = new Cats();
Mammals obj = new Dogs();
etc....
现在我想从数组中洗出一个特定的对象,只是为了打印出来。假设我想从此 printCat 方法打印出一个猫对象 - 如何修改下面的代码以确保只有猫对象被洗牌?
public static void printCat() {
Mammals item;
int index = shuffleArray.nextInt(mammals.size());
item = mammals.get(index);
System.out.println(item);
}
您可以使用:
if(item instanceof Cat){
System.out.println(item);
}else{
//it is not cat
}
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);
}
一个警告...确保哺乳动物集合在 运行 之前包含一只猫,否则您将陷入无限循环。您也可以考虑修改它,这样您就不会 select 多次使用相同的哺乳动物。